2016-05-04 5 views
0

PhaserをTypescriptで使用してゲームを作成し、管理しやすくするためにいくつかのインターフェイスを作成し、Spritesに実装しました。私が突然作成したすべてのPhaser.Spriteオブジェクトには2次元座標がありません

インターフェイスを作成する前に、すべて正常に機能しました。作成されたすべてのスプライトは、正しく更新された2次元座標(Sprite.{x,y})を持っていました。

私はインターフェイスはしかし、新しく作成されたSprite sがもはやでもすぐに作成(エッジブラウザのデバッガ)の後xy座標を、含まれていません作成した後:

Tank Debug

右側のリスト「を見て」 thisの内容を示しています。ご覧のとおり、座標はz - 座標ですが、座標はxまたはy - 座標ではありません。

基本的な物理設定に変更を加えず、明示的にプロパティを削除していません。私はあなたが上に見ることができるように以来、私が望んでいたとしても、Spriteの作成の直後にチェックした後でさえ、存在しない。私が基底クラスTankに行った唯一の変更は、tankMoverプロパティを追加することでしたが、わかるように、ブレークポイントがアクティブになるまでに作成されていません。

私が行った変更は多くのファイルにまたがっているので、すべてのコードを含むことはできません。物理には影響しません。基本的には速度を制限された方法でSpriteに追加するだけです。

Tankクラスと何も関係していないことを確認するために、自分のメイン州のcreateメソッドに一時的なSpriteという名前のメソッドを作成しました。

フェイザーでTemp Sprite Debug

、何にSpritexy座標プロパティを引き起こす可能性があります:あなたが見ることができるように、でもすぐにその作成と物理システムに加えた後、それはどちらかの座標を持っていません。移入に失敗しましたか?

答えて

0

これは2つのものによって引き起こされた:

  • エッジがスプライトのx、y座標を報告しません。彼らが存在していたとしても。
  • PhaserのPhaser.Math.angleToXY関数にthis.hostの代わりにthisが誤って渡されました。何らかの理由でTypescriptの型システムが間違っていたとしても、それをキャッチしませんでした。

ありがとうございます。

関連する問題