我用了cocos2d自带的物理引擎实现的人物跳起,但是在落下的时候人物的刚体和地面会发生穿透现象,导致跑在地面的边缘会卡住,用过_scene->getPhysicsWorld()->step(1/180.0f);达不到自己想要的效果…
,在这里问下各位大神有没有好的方法解决,谢谢了。
我没用物理引擎,我的思路是给人物一个初始的速度v,并赋值(我这是21),然后让v不断减小
void Player::jump()
{
this->setPositionY(this->getPositionY() + v);
v --; //速度越来越小,模拟重力
if(v < -21) //当速度等于-21时说明已经回落到起始x值
{
this->setStatus(RUNSTATUS);
v = 21;
}
}
我之前也是用官方封装的物理引擎,各种穿透,后来还是乖乖回去用Box2D了
额,BOX2D好用不?没用过 - - !
这个如果遇到地面高度不一样怎么解决,如果跳起的地面没有落地的地面高,那么模拟重力就不能为v<-21了。
我建议楼主还是老老实实去用box2d吧
最近也要写一个跑酷的游戏,本人是个新手,具体也没什么思路,不知各位有什么建议没有?
官方封装的物理引擎我已经吐槽过无数次了,也不少人吐槽过。
方便是方便,各种BUG根本无法忍。就连官方的test-cpp里的demo都BUG一大堆。
还是老老实实用BOX2D。