比如要让角色跳起来

1.如果是用到物理引擎,那么在物理世界中,可以用

hero->getPhysicsBody()->setVelocity(Vec2(0, 400));  //给主角一个向上的速度

如果不想让主角一点就跳,而是点完后等执行完一个跳跃的动作后落到地面后再跳的话,可以给这个语句加一个条件判断执行,这个语句里面的+5是关键

if (_hero->getPositionY()<_positionY+_hero->getContentSize().height/2+5) {
  _hero->getPhysicsBody()->setVelocity(Vec2(0, 400));
}

2.如果没有用到物理引擎,那么可以用到动作和动画,可以用一个动作队列把跳起来和落下来重新开始跑的动作串起来执行

auto jump = JumpBy::create(1, Vec2(0, 0), 100, 1);

hero->runAction(Sequence::create(jump, call, NULL));

05-11 22:00