cocos2d基础篇笔记五

1.设置背景音乐:

//首先添加需要#include "SimpleAudioEngine.h"且播放音乐的类不在Cocos2d包下,而是在CocosDenshion包下,各位要注意。

CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sky_city.mp3",true);//第一个参数是音乐文件路径,第二个参数是是否重复播放。

2.创建一个新的场景:

.h文件

#ifndef _GAMEOVER_H_
#define _GAMEOVER_H_
#include"cocos2d.h"
USING_NS_CC;
class gameover:public CCLayerColor{
public:
CCLabelTTF*_label;                                         //创建一个标签
virtual bool init();
static CCScene *scene();
CREATE_FUNC(gameover);
~gameover();                                                         
void returntogame(CCNode*);                          //切换场景函数
};
#endif

.cpp文件

bool gameover::init(){
if(CCLayerColor::initWithColor(ccc4(255,0,255,255))){


CCSize visiblesize=CCDirector::sharedDirector()->getVisibleSize();
_label=CCLabelTTF::create("Game Over","Artial",40);                                   //给标签添加内容
_label->setPosition(ccp(visiblesize.width/2,visiblesize.height/2));
this->addChild(_label);
_label->retain();                                                                                            //保证_label和layer有同样的生命周期

CCDelayTime*delay=CCDelayTime::create(3);
CCCallFuncN*returntogame=CCCallFuncN::create(this,callfuncN_selector(gameover::returntogame));
this->runAction(CCSequence::create(delay,returntogame,NULL));
return true;
}
return false;
}

3.场景之间的切换:

void HelloWorld::selfdefine(CCNode *who){
who->removeFromParentAndCleanup(true);              //重屏幕上清除目标
int Tag=who->getTag();                                                 //通过Tag区分是靶子还是射弹
if(1==Tag){                                                                       //只要一个没打中就切换失败场景
_targets->removeObject(who);

 CCScene*scene=gameover::scene();
gameover*overlayer=(gameover*)scene->getChildByTag(100);                       //获取ganeover层里标志为100的_label的方法
overlayer->_label->setString("You  Are  sock");                                                     //修改gameover层里_label的值
CCDirector::sharedDirector()->replaceScene(scene);                                       //修改值后切换场景
}
else if(2==Tag)
_projs->removeObject(who);
}



4.创建一个延迟,延迟后并且返回原先场景

CCDelayTime*delay=CCDelayTime::create(3);                                                       //参数是延迟秒数CCCallFuncN*returntogame=CCCallFuncN::create(this,callfuncN_selector(gameover::returntogame));  //调用自定义的returntogame函数重新返回延迟之前的场景

this->runAction(CCSequence::create(delay,returntogame,NULL));


void gameover::returntogame(CCNode*){                                                                      

CCDirector::sharedDirector()->replaceScene(HelloWorld::scene());                   //切换到延迟前的场景


}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值