论坛首页 移动开发技术论坛

Cocos2d-x实例:设置背景音乐与音效-HelloWorld场景实现

浏览 1162 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-08-05  

HelloWorld场景就是游戏中的主菜单场景。HelloWorld.h文件代码如下:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. #define __HELLOWORLD_SCENE_H__  
  2.   
  3.   
  4. #include "cocos2d.h"  
  5. #include "SimpleAudioEngine.h"                                          ①  
  6. #include "SettingScene.h"  
  7.   
  8.   
  9. class HelloWorld : public cocos2d::Layer  
  10. {  
  11. public:  
  12.     static cocos2d::Scene* createScene();  
  13.   
  14.   
  15.     virtual bool init();                                                    ②  
  16.     virtual void onEnter();  
  17.     virtual void onEnterTransitionDidFinish();  
  18.     virtual void onExit();  
  19.     virtual void onExitTransitionDidStart();  
  20.     virtual void cleanup();                                                 ③  
  21.   
  22.   
  23.     void menuItemHelpCallback(cocos2d::Ref* pSender);  
  24.     void menuItemStartCallback(cocos2d::Ref* pSender);  
  25.     void menuItemSettingCallback(cocos2d::Ref* pSender);  
  26.     CREATE_FUNC(HelloWorld);  
  27. };  
  28.   
  29.   
  30.   
  31.   
  32. bool HelloWorld::init()  
  33. {  
  34.     if ( !Layer::init() )  
  35.     {  
  36.         return false;  
  37.     }  
  38.   
  39.   
  40.     log("HelloWorld init");  
  41.   
  42.   
  43.     Size visibleSize = Director::getInstance()->getVisibleSize();  
  44.     Point origin = Director::getInstance()->getVisibleOrigin();  
  45.   
  46.   
  47.     Sprite *bg = Sprite::create("background.png");  
  48.   
  49.   
  50.     bg->setPosition(Point(origin.x + visibleSize.width/2,  
  51.         origin.y + visibleSize.height /2));  
  52.     this->addChild(bg);  
  53.   
  54.   
  55.     //开始精灵  
  56.     Sprite *startSpriteNormal = Sprite::create("start-up.png");  
  57.     Sprite *startSpriteSelected = Sprite::create("start-down.png");  
  58.   
  59.   
  60.     MenuItemSprite *startMenuItem = MenuItemSprite::create(startSpriteNormal,   
  61.         startSpriteSelected,  
  62.         CC_CALLBACK_1(HelloWorld::menuItemStartCallback, this));  
  63.     startMenuItem->setPosition(Director::getInstance()->convertToGL(Point(700, 170)));  
  64.   
  65.   
  66.     // 设置图片菜单  
  67.     MenuItemImage *settingMenuItem = MenuItemImage::create(  
  68.         "setting-up.png",  
  69.         "setting-down.png",  
  70.         CC_CALLBACK_1(HelloWorld::menuItemSettingCallback, this));   
  71.     settingMenuItem->setPosition(Director::getInstance()->convertToGL(Point(480, 400)));  
  72.   
  73.   
  74.     // 帮助图片菜单  
  75.     MenuItemImage *helpMenuItem = MenuItemImage::create(  
  76.         "help-up.png",  
  77.         "help-down.png",  
  78.         CC_CALLBACK_1(HelloWorld::menuItemHelpCallback, this));   
  79.     helpMenuItem->setPosition(Director::getInstance()->convertToGL(Point(860, 480)));  
  80.   
  81.   
  82.     Menu* mu = Menu::create(startMenuItem, settingMenuItem, helpMenuItem, NULL);      
  83.     mu->setPosition(Point::ZERO);  
  84.     this->addChild(mu);  
  85.   
  86.   
  87.     return true;  
  88. }  
  89.   
  90.   
  91. void HelloWorld::menuItemSettingCallback(Ref* pSender)  
  92. {     
  93.     auto sc = Setting::createScene();  
  94.     auto reScene = TransitionJumpZoom::create(1.0f, sc);  
  95.     Director::getInstance()->pushScene(reScene);  
  96.     SimpleAudioEngine::getInstance()->playEffect("sound/Blip.wav");                  ②  
  97. }  
  98.   
  99.   
  100. void HelloWorld::menuItemHelpCallback(Ref* pSender)  
  101. {  
  102.     MenuItem* item = (MenuItem*)pSender;  
  103.     log("Touch Help %p", item);  
  104.     SimpleAudioEngine::getInstance()->playEffect("sound/Blip.wav");                  ③  
  105. }  
  106.   
  107.   
  108. void HelloWorld::menuItemStartCallback(Ref* pSender)  
  109. {  
  110.     MenuItem* item = (MenuItem*)pSender;  
  111.     log("Touch Start %p", item);  
  112.     SimpleAudioEngine::getInstance()->playEffect("sound/Blip.wav");                  ④  
  113. }  
  114.   
  115.   
  116. void HelloWorld::onEnter()  
  117. {  
  118.     Layer::onEnter();  
  119.     log("HelloWorld onEnter");        
  120. }  
  121.   
  122.   
  123. void HelloWorld::onEnterTransitionDidFinish()  
  124. {  
  125.     Layer::onEnterTransitionDidFinish();  
  126.     log("HelloWorld onEnterTransitionDidFinish");  
  127.     //播放  
  128.     SimpleAudioEngine::getInstance()->playBackgroundMusic("sound/Jazz.mp3", true);       ⑤  
  129. }  
  130.   
  131.   
  132. border-style: none none none solid; border-left-width: 3px; border-left-color: #6ce26c; background-color: #f8f8f8; line-height: 18px; margin-bottom: 0px !important; margin-left:
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics