关于Crafty - 等距和重力;还有四个方面

时间:2014-05-18 14:01:47

标签: javascript craftyjs

我有两个关于Crafty的问题(我也曾在他们的Google群组社区中提问,但似乎很少有人看到这一点)。

我已经按照本教程http://buildnewgames.com/introduction-to-crafty/阅读了一些块(http://craftyjs.com/demos/isometric/)的crafty网站上的“等距”演示。我一直在尝试将我在两者中学到的东西结合起来。

(Q1)当我使用fourway组件(在教程中使用了很多)时,如果我按住左箭头键并按住CTRL-TAB向左按住当前选项卡,然后返回(不一定持有)离开了,然后我的角色似乎陷入了向“左”方向移动。它也适用于其他3个方向。这是一个已知问题吗?无论如何都要修理它而不改变狡猾的东西?

这里使用的是firefox 29和chrome 34.我的代码几乎就是教程结束时提供的最终版本中的代码(它不一样,但即使它是相同的,我已经有了这个问题)。< / p>

顺便说一句,当发生这种情况时,如果我按住CTRL-TAB并再次按住该左键,则事情会恢复正常(运动停止)。

(Q2)等距特征将Z解释为高度,重力分量使用Y作为高度。这不是问题吗?例如,我可以告诉引力使用除y以外的其他东西来获得高度吗?

1 个答案:

答案 0 :(得分:1)

关于(Q1),移动由keydown和keyup事件管理。如果在触发运动开始时更改选项卡,则四通组件永远不会再次停止任何键盘事件。您可以使用以下解决方法:

Crafty.settings.modify("autoPause", true);

启用autoPause(init函数中的某个位置)会在浏览器选项卡狡猾的运行时暂停游戏。然后,您可以通过触发键盘事件或阻止播放器组件像这样移动来对此事件作出反应:

player.bind('Pause', function() {
    this.disableControl();
});

player.bind('Unpause', function() {
    this.enableControl();
});

如果您在播放器组件中处理动画,也可能想停止动画。