私はスペースナビゲーションゲームを作っています。だから、宇宙船のユーザーから始まり、船が進んで行く上のキーを押すと、「地図」は常に異なっています。私は5つの星型と2種類の惑星を持っています。ユーザがナビゲートする。私はキー検出、ムービークリップジェネレータコードを作ることができますが、私はナビゲーションコードをどうやって作るのか分かりません。ユーザーがキーを押したときにビューポートをどのように動かすのですか?私があまりにもよく理解していないコードは、基本的には、押されたキーに従って動き出す巨大なムービークリップを作成したということです。それは私がすべてを無作為に生成し、ユーザが下向きの矢印を押したときに元の同じ「地図」で戻ってほしいので、私の場合はうまくいかないでしょう。みんな私を助けてください、私はこのビューポートの事すべてと全く混同しています。また、私はゲームを速く走らせたいと思っています。私はアクションスクリプトを初めて使っています。表示されていないオブジェクトをレンダリングすると重くなるかどうかわかりません。 .visible = false 'は機能しますか?前もって感謝します。AS3:終了のないビューポート
0
A
答えて
3
私はここでやっていることは次のとおりです。
は、別のカスタムクラスMapCamera
あるプロパティcamera
とMap
クラスを作成します。 MapCamera
は、5つの性質を有する:
_x
_y
- - 所有
Map
のインスタンスへの参照をこのMapCamera
offsetX
offsetY
- オフセット値は、画面の左端と上端からのxとy間隔を表します。カメラのステージ上の中心を正しく設定するには、画面の幅と高さの半分に設定する必要があります。
_x
および_y
プロパティはprivate
であり、ゲッタとセッタを持っています。
map
ゲッターはかなり基本的なもの:セッターは、ビューポートはそうのように、変更されている場所
public function get x():Number{ return _x; }
public function get y():Number{ return _y; }
:
public function set x(n:Number):void
{
_x = n;
map.x = -(_x + offsetX);
}
public function set y(n:Number):void
{
_y = n;
map.y = -(_y + offsetY);
}
ここから、あなたはにあなたの子供を追加Map
のコンテナを使用して、次に行くことができます:
map.camera.x = player.x;
map.camera.y = player.y;
これは、プレーヤーが常に画面中央にくる原因となります。
関連する問題
- 1. Flash AS3サウンド終了時間を定義
- 2. ハイブの終了と終了の違い
- 3. メソッドの終了後にonMapReady()の代入が終了しない
- 4. タスクがプロセス終了前に終了していない
- 5. プログラムの終了時にプロセスが終了しない
- 6. 終了時にJavaFXアプリケーションのタスクマネージャプロセスが終了しない理由
- 7. npm cli(終了/終了なし)
- 8. シェルスクリプトを終了しない
- 9. アプリケーションが終了しない
- 10. AsyncTaskが終了しない
- 11. 終了しないループ
- 12. Emacsが終了しない
- 13. AsyncTaskが終了しない
- 14. QCoreApplicationが終了しない
- 15. アプリケーションが終了しない
- 16. コンテキストキャンセルが終了しない
- 17. ノードアプリケーションが終了しない
- 18. メソッドが終了しない
- 19. アプリが終了しない
- 20. wgetが終了しない
- 21. データベースクエリの終了/非終了
- 22. child_processが終了しないときに終了する
- 23. スレッドが終了せず、プログラムが終了しない
- 24. Golang:select文が終了しないときに終了する
- 25. C#プログラムが終了した後にコンソールが終了しない
- 26. C#終了タスクが終了しないプロセス
- 27. Eclipseは(JVMが終了し、終了コード= 1。)起動しない
- 28. アプリケーション終了時にデバッグモードを終了しないVisual Studio 2010 Pro
- 29. ブートストラップツアーを終了して終了しない
- 30. codeigniterセッションが終了しないときに終了する
マーティー、本当に最小限のソリューション;) –