2011-10-26 7 views
0

私はスペースナビゲーションゲームを作っています。だから、宇宙船のユーザーから始まり、船が進んで行く上のキーを押すと、「地図」は常に異なっています。私は5つの星型と2種類の惑星を持っています。ユーザがナビゲートする。私はキー検出、ムービークリップジェネレータコードを作ることができますが、私はナビゲーションコードをどうやって作るのか分かりません。ユーザーがキーを押したときにビューポートをどのように動かすのですか?私があまりにもよく理解していないコードは、基本的には、押されたキーに従って動き出す巨大なムービークリップを作成したということです。それは私がすべてを無作為に生成し、ユーザが下向きの矢印を押したときに元の同じ「地図」で戻ってほしいので、私の場合はうまくいかないでしょう。みんな私を助けてください、私はこのビューポートの事すべてと全く混同しています。また、私はゲームを速く走らせたいと思っています。私はアクションスクリプトを初めて使っています。表示されていないオブジェクトをレンダリングすると重くなるかどうかわかりません。 .visible = false 'は機能しますか?前もって感謝します。AS3:終了のないビューポート

答えて

3

私はここでやっていることは次のとおりです。

は、別のカスタムクラスMapCameraあるプロパティcameraMapクラスを作成します。 MapCamera

は、5つの性質を有する:

  1. _x
  2. _y
  3. map
  4. - 所有Mapのインスタンスへの参照をこのMapCamera
  5. offsetX
  6. offsetY

    • オフセット値は、画面の左端と上端からのxとy間隔を表します。カメラのステージ上の中心を正しく設定するには、画面の幅と高さの半分に設定する必要があります。
    • _xおよび_yプロパティはprivateであり、ゲッタとセッタを持っています。

ゲッターはかなり基本的なもの:セッターは、ビューポートはそうのように、変更されている場所

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; 

これは、プレーヤーが常に画面中央にくる原因となります。

+0

マーティー、本当に最小限のソリューション;) –

関連する問題