1

次のようなシーンがあるとします。デバイスのフレームと同じサイズのシーンがあります。シーンには赤いボールがあり、「ワールド」全体を移動できます。この世界は黒と白のエリアで定義されており、ボールは白のエリアでのみ動くことができます。説明に役立つ図を次に示します。 シーンの写真

ユーザーがシーンの上に白い色で描いているかのように、黒い領域の一部を消去できます。これは、ボールを動かすことができる領域が常に変化していることを意味します。では、白と黒の領域の間のエッジに物理ボディを実装するにはどうすればよいでしょうか?

変更されるたびにphysicsBodyを再定義しようとしましたが、形状が十分に複雑になると、これは実行可能な解決策ではありません. 目に見えない「ボックス」の 2 次元配列を作成して、各ボックス内の領域の大部分が白か黒かを指定してみました。ボールが黒のボックスに触れた場合、ボールは押し戻されます。ただし、これには大量のレンダリングと配列の反復処理が必要でした。元の配列にはピクセルよりも少し大きなボックスが含まれていたので、これらのボックスを大きくして動きを少し滑らかにしようとしましたが、最終的にはボールの一部が白い領域で停止し、黒い領域内にあるように見えました。ユーザーは目に見えない障壁にぶつかっているように感じる可能性があるため、これは望ましくありませんでした。

この「破壊可能な地形」タイプのシーンを実装する他の方法を探してみましたが、見つけて試した解決策は、他のゲーム エンジンを使用することでした。さらに明確にするために、Objective-C と Apple の SpriteKit フレームワークを使用しています。コードでいっぱいの詳細なクラスを探しているのではなく、解決策につながる疑似コードまたは実装のアイデアを探しています。

ありがとうございました。

4

1 に答える 1