Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?

时光毁灭记忆、已成空白 提交于 2019-11-27 20:27:57

有点晚了,眼睛开始痒痒了,赶紧记录点东西

刚请教了sw同学,跟听D也扯了会,苦命的孩子,今晚他们游戏发新版,前端必须加班,骨头好是羡慕。。。


前几个笔记的例子都是zai一个Scene.cpp里完成的,想新加一个,结果老报找不到类。

解决方法:

把新加的类从 prog.win32中拷贝到classes中,然后项目里倒入现有项,ok!


新加了一个菜单页,打算放几个menu

图片资源可以从cocos2dx的demo里搜

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. CCSize vSize=CCDirector::sharedDirector()->getVisibleSize();  
  2.     CCPoint origin=CCDirector::sharedDirector()->getVisibleOrigin();  
  3.   
  4.     CCLabelTTF *label=CCLabelTTF::create("LazyGame","Arial",33);  
  5.     label->setPosition(ccp(vSize.width/2,vSize.height-label->getContentSize().height));  
  6.     this->addChild(label);  
  7.   
  8.     CCMenuItemImage* item1 = CCMenuItemImage::create("btn-play-normal.png""btn-play-selected.png"this, menu_selector(Welcome::menuCallback));  
  9.     CCMenuItemImage* item2 = CCMenuItemImage::create("btn-highscores-normal.png""btn-highscores-selected.png"this, menu_selector(Welcome::menuCallbackHighScores) );  
  10.     CCMenuItemImage* item3 = CCMenuItemImage::create("btn-about-normal.png""btn-about-selected.png"this, menu_selector(Welcome::menuCallbackAbout) );  
  11.   
  12.     item1->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*3));  
  13.     item2->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*5));  
  14.     item3->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*7));  
  15.   
  16.     item1->setScaleX( 2.0f );  
  17.     item2->setScaleX( 2.0f );  
  18.     item3->setScaleX( 2.0f );  
  19.   
  20.     CCMenu* pMenu = CCMenu::create(item1,item2,item3, NULL);  
  21.     pMenu->setPosition(CCPointZero);  
  22.     this->addChild(pMenu);   

以上是加入label,MenuItemImage图片按钮的例子,setScaleX:设置缩放。

然后在h文件里声明一个void menuCallback(CCObject* pSender);按钮事件处理类,里面写跳转逻辑:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. void Welcome::menuCallback(CCObject* pSender)  
  2. {  
  3.     CCDirector* pDirector = CCDirector::sharedDirector();  
  4.     CCScene *pScene = HelloWorld::scene();  
  5.     pDirector->replaceScene(pScene);  
  6. }  

ok,多个Scene就是这么切换的。上一张霰弹图:自己创造幽灵,然后被自己的霰弹弄死!骨头是有多无聊啊!

要睡了。。。


 ------------------- 飞船起飞--------------------   

Cocos2dx游戏开发系列笔记10:解刨《战神传说》

Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应

Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》

Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?

Cocos2dx游戏开发系列笔记3:牛刀小试->忍者飞镖射幽灵的Demo

Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么

Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin

-------------------- 飞船降落-------------------- 



最后,骨头介绍一下陪在身边的哲哲(右边就是低调的哲哲)

哲哲,小名 YIYI ,手工爱好者,文艺范,手艺人,《YiYiの妙舍》创始人,很有自己想法。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!