cocos2dx update跳跃函数
2015-03-28 00:09
344 查看
在update函数中写跳跃函数使主角没帧跳跃一小段位移 可以让跳跃动作看起来更加的自然 加入重力加速度等变量 运动更合理
首先在主角的初始化代码中进行初始起跳速度和重力加速的初始化(PS.重力加速度和初始速度不能用现实世界中的标准进行初始化)
//这段代码中设置了主角的起跳速度m_speedY 下落速度m_speedfall 重力加速度 m_speedGrivaty 并且调用了update函数this->scheduleUpdate();
bool Hero::init()
{ m_speedfall=0;
m_speedGrivaty=-500.0f;
m_speedY=250.0f;
m_isJumping=false;
this->scheduleUpdate();
return true;
}
//这段代码位于update函数中 功能是主角的相关位移 运用了运动公式 对位移和速度变化的计算 然后不断重置主角的位置
if(myHero->m_isJumping==true)
{
auto changeY=myHero->m_speedY*data+(1/2)*myHero->m_speedGrivaty*data*data;
myHero->m_speedY=myHero->m_speedY+myHero->m_speedGrivaty*data;
myHero->m_sprite->setPositionY(myHero->m_sprite->getPositionY()+changeY);
}
//这段代码也位于update函数中 主要用于跳跃结束后 重置主角数据并将跳跃状态设置为false
if(isCollideWithHeroX()==true&&myHero->m_isJumping==true&&myHero->m_speedY<0.0f)
{
myHero->m_isJumping=false;
myHero->m_sprite->stopAllActions();
myHero->m_sprite->runAction(Hero::createAnimate());
myHero->m_speedY=250.0f;
return;
}
首先在主角的初始化代码中进行初始起跳速度和重力加速的初始化(PS.重力加速度和初始速度不能用现实世界中的标准进行初始化)
//这段代码中设置了主角的起跳速度m_speedY 下落速度m_speedfall 重力加速度 m_speedGrivaty 并且调用了update函数this->scheduleUpdate();
bool Hero::init()
{ m_speedfall=0;
m_speedGrivaty=-500.0f;
m_speedY=250.0f;
m_isJumping=false;
this->scheduleUpdate();
return true;
}
//这段代码位于update函数中 功能是主角的相关位移 运用了运动公式 对位移和速度变化的计算 然后不断重置主角的位置
if(myHero->m_isJumping==true)
{
auto changeY=myHero->m_speedY*data+(1/2)*myHero->m_speedGrivaty*data*data;
myHero->m_speedY=myHero->m_speedY+myHero->m_speedGrivaty*data;
myHero->m_sprite->setPositionY(myHero->m_sprite->getPositionY()+changeY);
}
//这段代码也位于update函数中 主要用于跳跃结束后 重置主角数据并将跳跃状态设置为false
if(isCollideWithHeroX()==true&&myHero->m_isJumping==true&&myHero->m_speedY<0.0f)
{
myHero->m_isJumping=false;
myHero->m_sprite->stopAllActions();
myHero->m_sprite->runAction(Hero::createAnimate());
myHero->m_speedY=250.0f;
return;
}
相关文章推荐
- cocos2dx学习之路----第十二篇(关于Node节点的自我更新函数Update探讨及定时器的使用)
- Cocos2dx CCJumpTo函数执行两次跳跃时,坐标异常
- cocos2dx-v3.0-图形绘制-draw()函数
- 窗口刷新的几个函数:Invalidate UpdateWindow RedrawWindow(转)
- 关于在CCNode中的update函数启动问题
- cocos2dx中Http链接以及使用JsonCPP解析的简单函数
- Sql Server Update() 函数
- cocos2dx中注册导出c++函数供lua调用(使用tolua++)
- 问题记录:cocos2dx-C++静态成员函数的使用问题
- cocos2dx-数学函数ccp
- C++11 FAQ中文版:std::function 和 std::bind(在cocos2dx中:bind能够把类内函数转成类外函数(通过传入这个类的指针 this 得到被捆绑的成员函))
- linux-0.11调试教程,update_line()函数中的按下字符键对应的缓冲区
- cocos2dx 常用宏和函数
- fastdfs函数tracker_query_storage_update1分析
- 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- cocos2dx自定截屏函数。大家试试吧
- Cocos2dx之Node函数表大集合
- 【COCOS2DX-LUA 脚本开发之六】利用Lua强转函数解决使用CCNode报错或无法正常使用以及简单介绍 quick-cocos2d-x 与 OpenQuick 两款Lua免费开源框架
- 【COCOS2DX-LUA 脚本开发之六】利用Lua强转函数解决使用CCNode报错或无法正常使用以及简单介绍 quick-cocos2d-x 与 OpenQuick 两款Lua免费开源框架
- Cocos2dx 动作函数