2011-04-01 61 views
0

我目前有一个SneakyJoystick启动并运行。它工作正常,它在屏幕上移动精灵。我已经拥有了它,所以当操纵杆度数在左边时,它会翻转精灵的图像。但是我如何做到这一点,如果它向左移动然后变为非活动状态,精灵将不会自动翻转回来?这真让我感到困惑。任何帮助表示赞赏。谢谢。Cocos2d中的SneakyJoystick问题

回答

1

您的程序中必须有一个预定选择器功能,用于在每秒(或任何间隔)后检查游戏杆的移动。我的意思是你要检查游戏杆是否朝向左侧的代码(joystick.velociy)。所以这个选择器会被连续调用,不管你的游戏杆是否激活。所以当你的游戏杆向左移动时,你可以翻转精灵,你可以设置一个布尔型标志“isFlipped = true”。在相同的选择器方法中,您可以检查游戏杆是否移动并且“isFlipped = true”,那么您可以翻转您的精灵并将该标志设置为false。

+0

好的。自从你提到它之后,我该如何设置选择器功能的时间间隔? – ipodfreak0313 2011-04-01 22:38:29

+0

[self schedule:@selector(your_function :) interval:0.5]; ....类似的东西。间隔以秒为单位。 – Tayyab 2011-04-01 22:43:47

+0

好的感谢您的快速回复!现在还有一件事。正如你所知道的,我正在使用一个SneakyJoystick,它会移动精灵,但它移动速度非常慢。我如何做到这一点,以便更快地移动? [Here](http://www.qcmat.com/sneakyinput-joystick-dpad-and-buttons-for-cocos2d/)是SneakyJoystick的链接。 – ipodfreak0313 2011-04-02 03:20:03

1

一般而言,建议将速度乘以任意数量,并将增量值传递给更新例程,以使事情更平稳。这将确保玩家的最终动作是确定的。我已经看到人们使用50到200之间的平均移动值。

例如, CGPoint velocity = ccpMult(moveStick.velocity,200 * delta);