ウォールマスクと衝突させたい回転したスプライト (キャラクター、ロケット、弾丸など) が 100 個ほどある 2D プラットフォーマー ゲームを構築しています。現在、Allegro 5 を使用していますが、これは 1 ビットのビットマップをサポートしていないため、これを使用するのが自然です。
独自のビットマップ実装を作成して、ローテーションのハック (回転したスプライトのキャッシュなど) を行うか、https: //www.allegro.cc/manual/5/allegro_pixel_format と Allegro の get_pixel( )?
そして、衝突テスト自体のために、キャラクターマスクをウォールマスクのアルファチャンネルにブリットするようなものを使用して、単一の値をテストする必要がありますか、それとも単に
if (wallmask[x][y] && character_mask[x+o_x][y+o_y]) { collide(); }
関連するすべての x と y に対して?
ありがとうございました。