0

我是使用 sprite builder 和 cocos2d 的新手。

我已经使用 sprite builder 及其时间线完成了 sprite continuos 运行。即英雄精灵将在应用程序启动后连续运行,如寺庙运行游戏。

如果用户点击屏幕,这个精灵应该会跳转。结构与实现这个如何让我正在运行的精灵在屏幕上跳起来?

下面是我在 touchBegan 中编写的让我的精灵跳跃的代码。这里我需要将这个运行动画与精灵跳跃动画合并。任何建议和帮助都会非常有帮助。

    [_hero.physicsBody applyImpulse:ccp(0, 400.f)];
4

1 回答 1

0

我这样做的方法是使用 typedef 枚举来设置一组将存储字符状态的变量。在 Definitions.h 类中进行设置。然后,在你的英雄类中,添加一个使用 switch 语句来改变状态的方法。例如,如果传入了jumpState,当前状态为runState,则该方法会将状态更改为jumpState,并运行一个名为jumpAnim 的方法。然后,您可以在 JumpAnim 中编码您的动画或从 spritebuilder 加载它。

然后,在您的 Gameplay 完成的另一个类中,将其称为 GamePlay 层,这就是您的 touchBegan 方法所在的位置。在 GameplayLayer.h 中,设置一个 CCTime 变量来存储您的跳跃计时器的值,即您向上跳跃动画运行的时间。

在您的 touchBegan 方法中,您可以将状态更改为跳跃并重置 jumpTimer。

然后,在您的更新方法中,调用 updateHero 方法。updateHero 会有一个 if 语句——如果 hero 状态是 jumpState,则将他向上移动 3 点,直到 jumpTimer 用完。一旦计时器用完,将状态更改为fallingState。下降状态也应该在你的角色类的 switch 语句中。

希望这可以帮助

于 2014-07-25T05:05:20.393 回答