cocos2d-x小游戏

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

1.如何添加一个精灵

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");

 

posted @ 2013-03-07 17:53  王世桢  阅读(509)  评论(0编辑  收藏  举报