cocos2dx 3.3 Physics 模拟物理世界

需求:人物跳跃,一次只能跳一下(不允许双阶跳)
问题:怎么判断人物是在空中还在已经落地?

玩过死亡独轮车吗?选择独轮车的时候,跳跃就是用轮子往下方顶一下,如果在地面,自然会弹上去。在cocos里面不知道怎么模拟,lz想到告诉我

落地给个回调函数就行了,跳起设定true,落地回调函数设置成false

这个有点意思,到时候试试

现在问题是怎么知道他落地了?

两个物体碰撞有一种可能是主角和墙壁碰撞了,并不是落地了。。

判断物体的y速度

:14: 每个地面都是body 在contact里,getBody 再getNode 再getTag 即可实现你要的站在地面及离开地面

想到个方法:往脚施加一个向下的冲力,同时往上身施加一个向上的冲力,这样直观很多,也方便,就是不知道那个力应该怎么计算。
如果是弹簧连接上身和下身的,那么跳的时候,把人压扁,这样好像更好。

不用contact也可以实现的。获取人物的位置,然后用
[list][li] _scene->getPhysicsWorld()->getShapes(location);[/li][/list]获取正下方是否有物体,如果有,那就跳