1

私は現在、フラッシュでランチャーゲームに取り組んでいます:

  1. 主人公は空中に棒を投げ、それは長距離を移動し、あらゆる種類の物体にぶつかります。
  2. スティックが飛んでいる間、主人公の犬はそれを追いかけ、あらゆる種類の物体などを叩きます...

私の問題:画面の上部にあるスティックをたどり、画面の下部にある犬をたどる場所で、画面を水平に分割したいと思います。

今、私はスティックムーブメントを実装しました。技術的には、スティックはステージの中心にのみ移動します。座標がステージの中心に来ると、他のすべてのオブジェクトはスティックのx速度とy速度に従って移動します。

今私の問題は、犬の表示をどのように管理するかです。ある種のビューポートを作成して、ステージの境界をはるかに超えたオブジェクトを表示できるクラスを見つけられることを望んでいましたが、これまでのところ、必要なものが見つかりませんでした。

私が考えることができる唯一の解決策は、ステージに追加されるたびに各ムービークリップの2つのインスタンスを作成し、変換されたx座標とy座標で別のmovieClipの子としてコピーを追加することです)が、その後、すべてを2回実行する必要があります(例:スティックが何かを破壊した場合、そのコピーも破壊する必要があります)。

プレーヤーのプロセッサを拷問することなく(そして自分の正気を損なうことなく)これをどのように行うことができるかについてのアイデアはありますか?

4

2 に答える 2

0

この問題に対する考えられる解決策の1つは、ここに表示されているものと同様に、DisplayObjectからピクセルを描画するブリッティングです。

もう1つ(おそらく長期的にはうまく機能し、最初から相互に排他的である必要はありません)は、すべてをデータ駆動型にすることです。同じデータまたはデータの異なるサブセットを取得する2つの異なるビューを作成し、独自のルールに従ってデータを表すだけです。

オブジェクトがデータから消えると、その表現は両方のビューから同時に消えます。技術的には、おそらくまだ2回作業を行っていますが、クラスの記述方法に精通している場合、これは必ずしも余分なコードを意味するわけではありません。

最後に、scrollRectの使用を検討することをお勧めします。

于 2012-10-15T22:06:29.783 に答える
0

やがてこの問題の答えを見つけたので、自分がしたことを共有したいと思いました。

解決策は、transform.matrixプロパティを使用して仮想カメラを実装することでした。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html

これを実現する方法のチュートリアルは次のとおりです。

http://www.youtube.com/watch?v=yuhJkEWAbq8

于 2013-02-26T18:50:22.940 に答える