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();    } 

工作之余,对知识点的一点回顾

原创粉丝点击