Crafty.jsゲーム エンジンをいじっています。プレーヤーがボールであり、プラットフォームにドロップダウンする小さなゲームがあります。次のプラットフォームにぶつかるたびに、彼はポイントを獲得します。スコアは変数として保存され、画面に表示されます。Crafty の衝突検出を使用して、プレイヤーが新しいプラットフォームにぶつかったことを検出しています。Crafty に慣れていない場合は、非常に単純です。プレーヤーが新しいプラットフォームにアクセスするたびに、イベントが発生し、スコアに 1 つ追加できます。
私の問題: ゲームは約 60fps で実行されます。キャンバスがリロードされるたびに、Crafty はプレイヤーが実際にプラットフォームに触れているかどうかを検出します。これにより、スコア変数は、プレイヤーがレベルに触れるたびに 1 フレームずつ増加します。これは私が望むものとはかけ離れています。スコアをプラットフォームごとに 1 回インクリメントしたい。これは私が修正する方法がわからない問題です。
私が解決しようとしたその他のこと: また、プレーヤーが開始点から離れている距離を常に測定することも検討しました。これにより、プレーヤーがどのプラットフォーム上にいるかを (除算によって) 知ることができます (プラットフォームは垂直方向に等間隔に配置されているため)。これは問題でしたが、Crafty がプレイヤーの現在の位置を教えてくれなかったためです。
うまくいくと思うこと:プレイヤーが各プラットフォームにヒットする最初のフレームでイベントを発生させることができれば、うまくいくと思います。(補足: プレイヤーが 1 つのプラットフォームにとどまり、ジャンプして同じプラットフォームに 2 度目に着地した場合、追加されるポイントは 1 つだけです。ダブル ジャンプではありません) 。
皆さんからのお願い:この問題に遭遇したことがありますか? 私は本当にこのゲームを終わらせる必要があります。そして、このマイナーな技術的問題により、私はそれを完成させることができません。誰かの入力が欲しいです。