現在、各レベルには3つのレイヤーがあります。
- バックグラウンド
- 衝突(壁、見えない壁、地面など)
- 前景
私のキャラクタースプライトには、衝突を検出するための1ピクセルがあります。この文字クラスには、衝突レイヤーのすべてのピクセルを含むColor[]があります。
Color[]
キャラクターのピクセル検出の位置を計算し、 ( "CharactersPixel")で使用できるintを取得します。
if ( Color[CharactersPixel].A != 0 )
Then collision.
それは完璧に動作します。
ただし、コリジョンレイヤーは、パーティクルやモンスターなど、他のすべてのオブジェクトで使用する必要があります。
衝突レイヤーには約380万ピクセルがあります。だからColor[]
同じです。
これColor[]
をすべてのオブジェクトに追加すると、RAMが多すぎますよね?