Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?
2013-12-09 00:00
621 查看
有点晚了,眼睛开始痒痒了,赶紧记录点东西
刚请教了sw同学,跟听D也扯了会,苦命的孩子,今晚他们游戏发新版,前端必须加班,骨头好是羡慕。。。
前几个笔记的例子都是zai一个Scene.cpp里完成的,想新加一个,结果老报找不到类。
解决方法:
把新加的类从 prog.win32中拷贝到classes中,然后项目里倒入现有项,ok!
新加了一个菜单页,打算放几个menu
图片资源可以从cocos2dx的demo里搜
[cpp]
view plain
copy
CCSize vSize=CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin=CCDirector::sharedDirector()->getVisibleOrigin();
CCLabelTTF *label=CCLabelTTF::create("LazyGame","Arial",33);
label->setPosition(ccp(vSize.width/2,vSize.height-label->getContentSize().height));
this->addChild(label);
CCMenuItemImage* item1 = CCMenuItemImage::create("btn-play-normal.png", "btn-play-selected.png", this, menu_selector(Welcome::menuCallback));
CCMenuItemImage* item2 = CCMenuItemImage::create("btn-highscores-normal.png", "btn-highscores-selected.png", this, menu_selector(Welcome::menuCallbackHighScores) );
CCMenuItemImage* item3 = CCMenuItemImage::create("btn-about-normal.png", "btn-about-selected.png", this, menu_selector(Welcome::menuCallbackAbout) );
item1->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*3));
item2->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*5));
item3->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*7));
item1->setScaleX( 2.0f );
item2->setScaleX( 2.0f );
item3->setScaleX( 2.0f );
CCMenu* pMenu = CCMenu::create(item1,item2,item3, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu);
以上是加入label,MenuItemImage图片按钮的例子,setScaleX:设置缩放。
然后在h文件里声明一个void menuCallback(CCObject* pSender);按钮事件处理类,里面写跳转逻辑:
[cpp]
view plain
copy
void Welcome::menuCallback(CCObject* pSender)
{
CCDirector* pDirector = CCDirector::sharedDirector();
CCScene *pScene = HelloWorld::scene();
pDirector->replaceScene(pScene);
}
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の妙舍》创始人,很有自己想法。
刚请教了sw同学,跟听D也扯了会,苦命的孩子,今晚他们游戏发新版,前端必须加班,骨头好是羡慕。。。
前几个笔记的例子都是zai一个Scene.cpp里完成的,想新加一个,结果老报找不到类。
解决方法:
把新加的类从 prog.win32中拷贝到classes中,然后项目里倒入现有项,ok!
新加了一个菜单页,打算放几个menu
图片资源可以从cocos2dx的demo里搜
[cpp]
view plain
copy
CCSize vSize=CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin=CCDirector::sharedDirector()->getVisibleOrigin();
CCLabelTTF *label=CCLabelTTF::create("LazyGame","Arial",33);
label->setPosition(ccp(vSize.width/2,vSize.height-label->getContentSize().height));
this->addChild(label);
CCMenuItemImage* item1 = CCMenuItemImage::create("btn-play-normal.png", "btn-play-selected.png", this, menu_selector(Welcome::menuCallback));
CCMenuItemImage* item2 = CCMenuItemImage::create("btn-highscores-normal.png", "btn-highscores-selected.png", this, menu_selector(Welcome::menuCallbackHighScores) );
CCMenuItemImage* item3 = CCMenuItemImage::create("btn-about-normal.png", "btn-about-selected.png", this, menu_selector(Welcome::menuCallbackAbout) );
item1->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*3));
item2->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*5));
item3->setPosition(ccp(vSize.width/2,vSize.height-item1->getContentSize().height*7));
item1->setScaleX( 2.0f );
item2->setScaleX( 2.0f );
item3->setScaleX( 2.0f );
CCMenu* pMenu = CCMenu::create(item1,item2,item3, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu);
以上是加入label,MenuItemImage图片按钮的例子,setScaleX:设置缩放。
然后在h文件里声明一个void menuCallback(CCObject* pSender);按钮事件处理类,里面写跳转逻辑:
[cpp]
view plain
copy
void Welcome::menuCallback(CCObject* pSender)
{
CCDirector* pDirector = CCDirector::sharedDirector();
CCScene *pScene = HelloWorld::scene();
pDirector->replaceScene(pScene);
}
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の妙舍》创始人,很有自己想法。
相关文章推荐
- Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么
- Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin
- Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的
- Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo完结篇
- Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
- Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
- Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
- Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题
- Cocos2dx游戏开发系列笔记3:牛刀小试->忍者飞镖射幽灵的Demo
- Cocos2dx系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
- (转)Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题
- Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇
- Cocos2dx游戏开发系列笔记10:解刨《战神传说》
- 14、Cocos2dx 3.0三,找一个小游戏开发Scene and Layer:游戏梦想
- cocos2dx游戏开发——微信打飞机学习笔记(十一)——GameOverScene的搭建
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应
- XNA游戏开发学习笔记系列(一)
- 【Cocos2d-X(2.x) 游戏开发系列之一】cocos2dx(v2.x)与(v1.x)的一些常用函数区别讲解!在2.x版CCFileData类被去除等
- 【cocos2dx游戏开发技术精解-学习笔记(1)】游戏背景