cocos2d-x游戏开发之三
来源:互联网 发布:mysql over 编辑:程序博客网 时间:2024/05/22 13:31
游戏中每个关卡中的内容都不是很难,我就找几个贴出来,希望对新手有帮助,也是对自己能力的一点总结吧!
先贴图给大家贴一个木琴界面出来
此关卡用到了粒子效果和随机数实现的
//// ToyMarimbaScene.cpp// LSCPractice//// Created by Dagobert on 13-6-14.////#include "ToyMarimbaScene.h" #include "cocos-ext.h"#include "SimpleAudioEngine.h"using namespace cocos2d;using namespace CocosDenshion;USING_NS_CC;USING_NS_CC_EXT;CCScene* ToyMarimba::scene(){ // 'scene' is an autorelease object CCScene *scene = CCScene::create(); // 'layer' is an autorelease object CCLayer *layer = ToyMarimba::create(); // add layer as a child to scene scene->addChild(layer); // return the scene return scene;}// on "init" you need to initialize your instancebool ToyMarimba::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } size = CCDirector::sharedDirector()->getWinSize(); CCSprite *pSprite_bg = CCSprite::create("bg_marimaba-iphone5.png"); pSprite_bg->setPosition(ccp(size.width/2,size.height/2)); this->addChild(pSprite_bg); CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "button_back-hd.png", "button_back-hd.png", this, menu_selector(ToyMarimba::BackToRootScene) ); pCloseItem->setPosition( ccp(size.width/2+440 , size.height/2+230) ); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition( CCPointZero ); this->addChild(pMenu, 1); //添加触摸区域 CCMenuItemImage *keyItem1 = CCMenuItemImage::create( "marimba_key1-hd.png", "marimba_key1-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem2 = CCMenuItemImage::create( "marimba_key2-hd.png", "marimba_key2-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem3 = CCMenuItemImage::create( "marimba_key3-hd.png", "marimba_key3-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem4 = CCMenuItemImage::create( "marimba_key4-hd.png", "marimba_key4-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem5 = CCMenuItemImage::create( "marimba_key5-hd.png", "marimba_key5-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem6 = CCMenuItemImage::create( "marimba_key6-hd.png", "marimba_key6-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem7 = CCMenuItemImage::create( "marimba_key7-hd.png", "marimba_key7-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); CCMenuItemImage *keyItem8 = CCMenuItemImage::create( "marimba_key8-hd.png", "marimba_key8-hd.png", this, menu_selector(ToyMarimba::PalyAnimation) ); key1Position = ccp(size.width*0.1496,size.height*0.4); key2Position = ccp(size.width*0.246,size.height*0.4); key3Position = ccp(size.width*0.343,size.height*0.4); key4Position = ccp(size.width*0.44,size.height*0.4); key5Position = ccp(size.width*0.541,size.height*0.4); key6Position = ccp(size.width*0.647,size.height*0.4); key7Position = ccp(size.width*0.748,size.height*0.4); key8Position = ccp(size.width*0.854,size.height*0.4); keyItem1->setPosition(key1Position); keyItem2->setPosition(key2Position); keyItem3->setPosition(key3Position); keyItem4->setPosition(key4Position); keyItem5->setPosition(key5Position); keyItem6->setPosition(key6Position); keyItem7->setPosition(key7Position); keyItem8->setPosition(key8Position); keyItem1->setTag(1); keyItem2->setTag(2); keyItem3->setTag(3); keyItem4->setTag(4); keyItem5->setTag(5); keyItem6->setTag(6); keyItem7->setTag(7); keyItem8->setTag(8); CCMenu* touch_pMenu = CCMenu::create(keyItem1,keyItem2,keyItem3,keyItem4,keyItem5,keyItem6,keyItem7,keyItem8, NULL); touch_pMenu->setPosition( CCPointZero ); this->addChild(touch_pMenu, 1); //进入场景的时候调用一次播放动画 ToyMarimba::PalyAnimation(this); return true;}//粒子效果void ToyMarimba::showParticleEffect(CCPoint particlePosition){ CCParticleSystemQuad *particle_ = CCParticleSystemQuad::create("particle.plist"); particle_->setPosition(particlePosition); int randomIndex = arc4random()%3; switch (randomIndex) { case 0: particle_->setTexture(CCTextureCache::sharedTextureCache()->addImage("sign1.png")); break; case 1: particle_->setTexture(CCTextureCache::sharedTextureCache()->addImage("sign2.png")); break; case 2: particle_->setTexture(CCTextureCache::sharedTextureCache()->addImage("sign3.png")); break; default: particle_->setTexture(CCTextureCache::sharedTextureCache()->addImage("sign1.png")); break; } //设置粒子的播放时间 particle_->setDuration(2); this->addChild(particle_, 5);}void ToyMarimba::Key1Pressed(){ ToyMarimba::showParticleEffect(key1Position);}void ToyMarimba::Key2Pressed(){ ToyMarimba::showParticleEffect(key2Position);}void ToyMarimba::Key3Pressed(){ ToyMarimba::showParticleEffect(key3Position);}void ToyMarimba::Key4Pressed(){ ToyMarimba::showParticleEffect(key4Position);}void ToyMarimba::Key5Pressed(){ ToyMarimba::showParticleEffect(key5Position);}void ToyMarimba::Key6Pressed(){ ToyMarimba::showParticleEffect(key6Position);}void ToyMarimba::Key7Pressed(){ ToyMarimba::showParticleEffect(key7Position);}void ToyMarimba::Key8Pressed(){ ToyMarimba::showParticleEffect(key8Position);}// 动画效果void ToyMarimba::PalyAnimation(CCObject *pSender){ CCMenuItemImage *idex = (CCMenuItemImage*)pSender; int tag_ = idex->getTag(); switch (tag_) { case 1: ToyMarimba::Key1Pressed(); break; case 2: ToyMarimba::Key2Pressed(); break; case 3: ToyMarimba::Key3Pressed(); break; case 4: ToyMarimba::Key4Pressed(); break; case 5: ToyMarimba::Key5Pressed(); break; case 6: ToyMarimba::Key6Pressed(); break; case 7: ToyMarimba::Key7Pressed(); break; case 8: ToyMarimba::Key8Pressed(); break; default: break; }}//返回上一个界面void ToyMarimba::BackToRootScene(CCObject* pSender){ CCDirector::sharedDirector()->popScene(); }
工作之余,对知识点的一点回顾
- cocos2d-x游戏开发之三
- Cocos2d-X游戏开发(三)
- [ IOS-Cocos2d-x 游戏开发] - cocosBuilder 开发之三
- 游戏开发教程cocos2d-x移植之三(上)
- Cocos2d-x游戏开发之三 NODE_FUNC和CREATE_FUNC说明
- Cocos2D-x游戏开发之三:音乐播放
- 【cocos2d-x游戏开发】 从零单排之(三)
- cocos2d-x 游戏开发之有限状态机(FSM) (三)
- [ IOS-Cocos2d-x (Box2d)游戏开发之三] -Cocos2d-x 结合Box2D开发Android游戏配置方法
- 【iOS-cocos2d-X 游戏开发之三】游戏存储之Cocos2dX自带CCUserDefault类详解
- 【Cocos2d-X(2.x) 游戏开发系列之三】最新版本cocos2d-2.0-x-2.0.2使用资源加载策略
- cocos2d-x游戏引擎开发之流程
- Cocos2d-x游戏开发之图片元素
- cocos2d-x游戏开发之二
- Cocos2d-X游戏开发之CCTouchDelegate
- Cocos2d-x游戏开发之CC_SAFE_RELEASE
- Cocos2d-x游戏开发之随机数使用
- Cocos2d-x游戏开发之音效使用
- 关于崩溃等问题的定位总结(使用qcc的一些方法来尝试)
- FlyWeight模式
- excel大数据自动增加的方法
- java中hashmap和hashtable的区别
- GPU通用计算调研报告
- cocos2d-x游戏开发之三
- 升级iOS SDK后如何建立已有项目
- VMware网卡模式解析
- ACM编程设计
- J2EE学习中一些值得研究的开源项目
- android listview setOnItemClickListener IndexOutOfBoundsException
- Android学习之envsetup.sh
- android的项目结构说明
- JVM性能调优之JVM性能监控