第一个项目(五)添加跳跃动作

来源:互联网 发布:js 定义json对象 编辑:程序博客网 时间:2024/04/30 04:37

//   TollgateScene更名为Stage

// 用到按钮和CCScale9Sprite需要#include "cocos-ext.h“  和using namespace cocos2d::extension;

// 用extension有两个步骤

// 1.在项目属性找到属性配置,c++,常规,附加包含目录,在目录最后添加cocos2d文件中extensions文件的绝对路径

// 2.在项目属性,连接器,输入,附加包含目录,最后一行添加 libExensions.lib

//*******************************************************************************************************************

不得不说的是,主角在继承了CCNode之后,运行动画就会出现各种各样奇怪的BUG,让我一度抓狂,不过我想八成是自己编写逻辑的疏漏,那么,接下来我还是把主角继承自CCSprite吧。

这次我要添加跳跃动作,动作肯定是由按钮触发的,就先写个按钮出来。

Stage.h 中声明按钮.在cpp中实例化

button_jump=CCControlButton::create(CCLabelTTF::create("jump","Maker Felt",30),CCScale9Sprite::create("button.png"));

CCControlButton的两个参数,第一个是CCLableTTF类的标签,第二个是CCScale9Sprite类的图片,我直接写成内部类了。

当然还有

<span style="white-space:pre"></span>this->addChild(button_jump);button_jump->setPosition(90,90);
随便写得坐标 一会再说。

为按钮添加点击回调函数

button_jump->addTargetWithActionForControlEvents(this,cccontrol_selector(Stage::button_jump_touchDown),CCControlEventTouchDown);
在h文件中声明button_jump_touchDown函数

void button_jump_touchDown(CCObject* pSender,CCControlEvent event);
在cpp文件中实例化

void Stage::button_jump_touchDown(CCObject* pSender,CCControlEvent event){<span style="white-space:pre"></span>}
里面就可以写关于跳跃的内容

player->runAction(player->jump());

在Player.cpp中

CCJumpBy* Player::jump(){CCJumpBy* jump = CCJumpBy::create(2.0f,ccp(0,0),250,1);return jump;}

这样就完成了最基本的跳跃功能,下次再优化。


完成到这里感觉很开心,bug变得渐渐少了些。



注:

在继承了CCSprite之后,不能直接creat()里面放图片,这里可以留空,在继承之后的类里面,init函数中加一句话

bool Player::init()
{
this->initWithFile("1.png");
return true;

}



0 0
原创粉丝点击