0

図面ビューでブロックを正しく実装して、線を 2 つの部分に分割できるようにする方法。UIImageViewまたはUIImageを使用していますか?

ここに画像の説明を入力

切断された後、ブロックは物理学の影響を受けるはずです。

4

1 に答える 1

1

まず、合計でいくつのカットが発生する可能性がありますか?いくつの独立したブロックが生じる可能性がありますか?10?100?これらのいずれかを実装する前に、iPhoneまたはiPodtouchでその数のオブジェクトを移動してテストしてください。シミュレーターで動作するからといって、実際のデバイスで十分に高速になるとは限りません。

第二に、すでに述べたように、あなたのために多くの仕事をするかもしれないゲームグラフィックスと物理学のためのライブラリがあります。 Cocos2Dは、OpenGL描画と物理ライブラリへの比較的簡単なアクセスを組み合わせた、人気のあるオプションのようです。

とにかく、あなた自身の描画をするために、ここに選択肢があります:

  1. すべてのグラフィックをOpenGLに移動します。これは軽々しく行われるべきではありません-あなたはCocoaTouchでの作業の容易さの多くを失います。また、グラフィックとアニメーションを最大限に制御でき、時間をかけて最適化すると、最もスムーズなパフォーマンスを実現できます。

  2. 単一のUIViewをCALayer用意し、独立したブロックごとにメインレイヤーにサブレイヤーを追加します。CALayersは、高速移動と合成用に設計されています。ただし、物理シミュレーションを実行している場合、最初のステップはアニメーションの動作を削除することです。 このチュートリアルシリーズは役に立つかもしれません。

  3. UIViewブロックごとに分けてください。UIViewは実際にはCALayerで描画されるため、これはCALayersを使用する場合と同様のパフォーマンスになります。このオプションはより多くのメモリを消費しますが(少なくとも以前と同じ数のレイヤーとより多くのビューがあります)、CALayersのすべての機能に加えて、ビューでより簡単ないくつかの描画オプションがあります。

  4. を1つ持ち、そのメソッドUIView中にすべてのブロックを描画します。drawRectこれは実装が簡単に見えるかもしれませんが、ほぼ確実に遅すぎます。

可能であれば、これらのそれぞれをテストします。切断と物理の部分を続行する前に、画面が遅くなりすぎる前に、画面全体でいくつのブロックをアニメートできますか?それを使ってゲームを作ることはできますか?物理システムが機能するとゲームの速度が低下することを忘れないでください。

于 2012-04-13T09:45:41.937 に答える