私はゲームのコードが駄目です。OutOfMemoryErrorが発生します。ビットマップサイズがVMの予算を超えています。Androidゲームコード - OutOfMemory!
私が正しいとすれば、VM予算は16 MBです。
私はMainPanelクラスがSufaceViewを拡張し、SurfaceHolder.Callbackを実装しています。
問題は別のクラスのビットマップに到達する必要があることです。私はこれが難しいはずがないと思いますか?
私は敵を生み出すEnemyCreatorという名前のクラスを持っており、エンティティ(敵)は作成するビットマップが必要です。しかし、MainPanelではなくEnemyCreatorで新しいビットマップを作成するにはどうすればよいですか?
現在、ビットマップはMainPanelで静的なので、私はデザインが悪いと推測しています。ゲームに苦しんでいる種類のメモリリークが発生します(問題の状態:android.graphics.Bitmap.nativeCreate(ネイティブメソッド))。
例MainPanel:
public static Bitmap ufoShieldBitMap = (BitmapFactory.decodeResource(getResources(), R.drawable.ufo_shield, optionsAlpha));
public static Bitmap explosion_SmallBitmap = (BitmapFactory.decodeResource(getResources(), R.drawable.explosion, options));
例EnemyCreator:
private void createAstroid() {
int randomAstroid = this.random.nextInt(astroidCount);
int randomXpos = this.random.nextInt(BackgroundManager.INSTANCE.screenWidth - 40);
switch(randomAstroid) {
case 0:
new EnemyAstroid(MainPanel.astroidBitmap, randomXpos, SPAWN_Y, 17, 17); // X, Y, FPS, FrameCount
break;
}
誰でも提案がありますか?
Downvoted前に同じ問題を持っていたので、「本当に汚いAndroidのビットマップが(ゲーム(コードを固定する必要があります!」 – Kromster
私はいくつかの主要な編集をした私はこれを実現質問は、私は自分の質問が実際にそこになかったことに気付かなかった。 –