0

横スクロールのフラッシュゲームを作っています。レベルは事前に作成されているため、実行時にスポーンするオブジェクトはありません。このレベルをかなり長くしましたが、エディター ウィンドウで突然停止します。しかし、ゲームではまだスクロールします。

これはエディターにあります。スクロール バーが左に移動できないことがわかります。
ゲームで

そしてゲーム内:
ここに画像の説明を入力

レベルがエディターに表示されているよりも長くなっています。最初は、シーンの境界にオブジェクトを置いて増やすだけでした。しかし、それはもううまくいきません。シーンの幅を広げるにはどうすればよいですか?

4

1 に答える 1

1

ステージ上に一度に表示できる画像のサイズには制限があります。おそらくその制限を超えているようです。そのため、これ以上表示することはできません。

これにはさまざまな理由がありますが、Flash プロセスに関する限り、Flash DisplayList が比較的遅いという事実に要約されます。ステージ上で多くのものを扱っている場合、Flash はすべてのオブジェクトを認識する必要があり、必要以上のものがあるとパフォーマンスが低下します。

しかし、絶望しないでください!この問題を回避する方法があります。

最初に知っておく必要があるのは、この制限はステージ上のビットマップに対するものだということです。一度に全体を表示しようとしない限り、プロジェクト内に非常に大きなビットマップを含めることができます。

ほとんどのゲーム フレームワークがこの問題を解決する方法は次のとおりです。

1)すべての画像データを舞台裏で保存し、そこですべての画像操作などを行います。

2) すべてのフレームで、copyPixels() を使用して、ステージに表示される大きな画像の一部だけを取得します。つまり、ステージ ビューに 640x480 ピクセルしか表示されていない場合は、それらのサイズに等しい大きな画像の一部をコピーするだけです。

3) ステージには、ステップ 2 で copyPixels() からビットマップ データを書き込むビットマップが 1 つだけあります。

これは「ブリッティング」と呼ばれ、少し複雑に聞こえるかもしれませんが、それはそのためです。ただし、前述したように、多くのゲーム フレームワークが面倒な作業を行ってくれます。Flixel または PushButtonEngine をチェックしてください。これらは最も人気のある 2 つのフレームワークです。

あなたの現在のアプローチは、そのように機能させるために少し調整が必要なように思えますが、長い目で見れば、私はそれをお勧めします.レベルを完全にロードするために、他の種類のハッカーに頼る必要はありません。

(迅速で簡単な解決策は、背景をいくつかの画像に分割し、それらを交換することですが、繰り返しになりますが、これはレンダリング エンジンに多くの作業を課すことになり、一般的に、重い作業を行う場所ではありません。 )。

幸運を!

于 2011-04-10T15:30:35.650 に答える