gpt4 book ai didi

javascript - 关于 Crafty - 等距和重力;还有四路

转载 作者:行者123 更新时间:2023-11-28 01:16:55 25 4
gpt4 key购买 nike

我有两个关于 Crafty 的问题(我也在他们的谷歌群组社区中询问过,但似乎很少有人看这个)。

我已按照本教程 http://buildnewgames.com/introduction-to-crafty/ 进行操作还查看了 crafty 网站上一堆 block 的“等距”演示( http://craftyjs.com/demos/isometric/ )。我一直在结合我在两者中学到的知识来尝试一些东西。

(Q1) 当我使用 fourway 组件(在教程中经常使用)时,如果我按住向左箭头键,然后在按住向左键的同时按 CTRL-TAB 退出当前选项卡,然后返回(不一定按住不再向左),那么我的 Angular 色似乎陷入了向“左”方向移动的困境。其他 3 个方向也会发生这种情况。这是一个已知问题吗?有没有办法在不改变 crafty 的情况下修复它?

它发生在 firefox 29 和 chrome 34 上。我的代码几乎是教程结尾处呈现的最终版本中的代码(它不一样,但即使它是相同的,我也已经遇到了这个问题)。

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

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

最佳答案

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

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

启用自动暂停(在初始化函数中的某个位置)将在运行的浏览器选项卡 crafty 处于非事件状态时暂停游戏。然后,您可以通过触发 keyup 事件或阻止播放器组件移动来对此事件使用react,如下所示:

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

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

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

关于javascript - 关于 Crafty - 等距和重力;还有四路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23722744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com