1

Craftyについて 2 つの質問があります (Google グループ コミュニティでも質問しましたが、それを見ている人はほとんどいないようです)。

私はこのチュートリアルhttp://buildnewgames.com/introduction-to-crafty/に従い、また、crafty のブロックの束のウェブサイトで「アイソメトリック」デモを見ました ( http://craftyjs.com/demos/アイソメトリック/ )。そして、両方で学んだことを組み合わせて、いくつかのことを試しています。

(Q1) 4方向コンポーネント (チュートリアルでよく使用されます) を使用する場合、たとえば左矢印キーを押したまま CTRL-TAB で現在のタブを左に押したままにしてから戻ると (必ずしも左を押したままにする必要はありません) 、その後、私のキャラクターは「左」方向への移動に引っかかっているようです。他の 3 方向についても同様です。それは既知の問題ですか?狡猾さを変えずに修正する方法はありますか?

ここではfirefox 29とchrome 34で発生します。私のコードは、チュートリアルの最後に提示された最終バージョンのものとほぼ同じです(同じではありませんが、同じ場合でも、すでにこの問題がありました)。

ちなみにこの時、その左キーを押しながらCTRL-TABで出入りすると元に戻ります(動きが止まります)。

(Q2) 等尺性フィーチャは Z を高さとして解釈し、重力コンポーネントは Y を高さとして使用します。これは問題ではありませんか?たとえば、重力に y 以外の高さを使用するように指示することはできますか?

4

1 に答える 1

1

(Q1)についてですが、移動はkeydownとkeyupイベントで管理しています。動きの開始がトリガーされたときにタブを変更すると、4 方向コンポーネントはキーアップ イベントを再度取得して停止することはありません。次のような回避策を使用できます。

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

autoPause (init 関数のどこか) を有効にすると、crafty が実行されているブラウザー タブが非アクティブなときにゲームが一時停止します。次に、キーアップ イベントをトリガーするか、プレーヤー コンポーネントが次のように動かないようにすることで、このイベントに対応できます。

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

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

プレーヤー コンポーネントでアニメーションを処理する場合は、そこでアニメーションを停止することもできます。

于 2014-08-04T15:44:31.267 に答える