cocos2d-x小游戏-创新互联

本节主要是通过一个小游戏来说明一下几个问题cocos2d-x小游戏

1.如何添加一个精灵

10年积累的成都网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有宁明免费网站建设让你可以放心的选择与我们合作。

2.如何移动一个精灵

3.如何相应触摸事件

4.如何对碰撞事件进行处理

5.如何添加声音

6.控制游戏的输赢

具体可以参照官网http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Tutorials 本人在这里只是做个总结,素材方面也是在官网提供

1.添加一个精灵

资源路径:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_2_-_How_to_Add_a_sprite
四步骤:
//1.初始化
CCSprite::create("Play.png",CCRectMake(0,0,27,40));
//2.检测
CC_BREAK_IF(!pSprite);
//3.设置坐标点
pSprite->setPosition(ccp(pSprite->getContentSize().width/2,size.height/2));
//4.添加到当前图层
this->addChild(pSprite);

如何让精灵移动

原理:
给精灵绑定动作
一类是瞬时动作(CCActionInstant);
一类是延时动作(CCActionInterval);
在精灵加入当前图层之后
初始化CCAction
然后将精灵用runAction方法绑定动作

代码:
//添加怪物精灵
void HelloWorld::addTarget(){

   //首先初始化怪物精灵
   CCSprite* pTarget=CCSprite::create("Target.png",CCRectMake(0,0,27,40));
   CCSize winSize=CCDirector::sharedDirector()->getWinSize();

   //计算可绘制的范围
   int minY=pTarget->getContentSize().height/2;
   int maxY=winSize.height-minY;
   //计算可随机基数
   int rangeY=maxY-minY;
   //随机出的基数*半个身位=最后坐标点
   int actualY=(rand()%rangeY)+minY;

   pTarget->setPosition(ccp(winSize.width+pTarget->getContentSize().width/2,actualY));

   this->addChild(pTarget);
   //pTarget->setTag(1);
   //_targets->addObject(pTarget);

   //计算移动速度 最慢4秒 移动横屏 最快两秒
   int minDuration=(int)2.0;
   int maxDuration=(int)4.0;
   int rangeDuration=maxDuration-minDuration;
   int actualDuration=(rand()%rangeDuration)+minDuration;

   //初始化耗时动作
   CCFiniteTimeAction* actionMove=CCMoveTo::create((float)actualDuration,ccp(0-pTarget->getContentSize().width/2,actualY));
   //这是一个回调方法 主要为在精灵动作完成后的操作
   CCFiniteTimeAction* actionMoveDone=CCCallFuncN::create(this,callfuncN_selector(HelloWorld::spritMoveFinished));

   //绑定动作
   pTarget->runAction(CCSequence::create(actionMove,actionMoveDone,NULL));

}

如何响应触摸事件

原理:
1.讲当前图层设置为响应图层
2.重写父类的监听方法
3.在监听方法里可活动当前点击的坐标点对其进行处理

1.在头文件中添加类的声明
  //声明点击事件方法
   virtual void ccTouchesEnded(cocos2d::CCSet* touches,cocos2d::CCEvent* event);
2.实现方法
  //点击事件处理
  void HelloWorld::ccTouchesEnded(CCSet* touches,CCEvent* event){}
  

添加声音

声音素材
http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_6_-_How_to_Play_Music_and_Sound_Effect

//添加子弹声音
CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("pew-pew-lei.wav");

标题名称:cocos2d-x小游戏-创新互联
文章位置:http://myzitong.com/article/dgdeso.html