私は、レベルの1つで、羊が地雷によって爆破される可能性があるゲームを持っています。爆発アニメーションは、512x515pngファイル内に爆発画像の4x4配列を含むpngを使用することで制御されます...以下を参照してください。
次に、次のコードを使用して爆発をアニメートします。
exp_bitmap_number_to_draw = (int)(time_since_death / 100);
if (exp_bitmap_number_to_draw < 16)
{
explosion_dst_rect.left = b2sx(sheep_x[i]) - sheep_radius * 5;
explosion_dst_rect.right = b2sx(sheep_x[i]) + sheep_radius * 5;
explosion_dst_rect.bottom = b2sy(sheep_y[i]) + sheep_radius * 5;
explosion_dst_rect.top = b2sy(sheep_y[i]) - sheep_radius * 5;
explosion_src_rect.left = 128 * (exp_bitmap_number_to_draw % 4);
explosion_src_rect.top = 128 * (exp_bitmap_number_to_draw / 4);
explosion_src_rect.right = explosion_src_rect.left + 128;
explosion_src_rect.bottom = explosion_src_rect.top + 128;
canvas.drawBitmap(explosion_bitmap, explosion_src_rect, explosion_dst_rect, null);
}
ここで、explosion_src_rectはRectであり、explosion_dst_rectはRectFです。b2sx()とb2sy()は、「競技場」の羊の絶対座標から画面の座標に変換する関数です。オフセットを追加するだけです。
このコードは、ネクサスSやギャラクシーS IIなど、私が試したいくつかの電話で完全に機能します。しかし、ちょうど今、友人がサムスンギャラクシータブ8.9でコードを試し、爆発が間抜けに見えたことを発見しました。彼は私にこの部分的なスクリーングラブを送ってくれました:
これを引き起こしている可能性のあるアイデアはありますか?