Ошибка получения Bitmap в другом классе
Суть проблемы в том, что я объявил bitmap в главном классе и при передачи его через разные классы и методы у меня не идет отрисовка объекта в нужном мне классе, вот например:
public class DrawBattlefield extends Thread {
/* какой-то код не нужный для вопроса */
public DrawBattlefield(Context context, SurfaceHolder surfaceHolder) {
this.surfaceHolder = surfaceHolder;
/* Добавляем картинку врага*/
enemyBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.true_enemy);
}
public void run() { // запуск surfaceView
while (running) {
Canvas canvas = surfaceHolder.lockCanvas();
if (canvas != null) {
try {
Paint paint = new Paint();
// Логига игры
new GameCore(canvas, enemyBitmap); // передача канвас и картинки врага
/* еще код */
}
}
}
}
далее в GameCore он передаёт его в еще кучу классов где в конце он доходит до класса Enemy:
// создаем класс врага
public class Enemy {
public int enemyXCoordinate = 0;
public int enemySpeed = 0;
public String enemyType;
public int enemyWidth = 30;
private Canvas canvas;
private Rect enemyRect;
private Bitmap enemyBitmap;
public Enemy(int enemySpeed, Canvas canvas, Bitmap enemyBitmap) { // принимает канвас, скорость и картинку врага
this.enemySpeed = enemySpeed;
this.canvas = canvas;
this.enemyBitmap = enemyBitmap;
}
public void draw() {
enemyRect = new Rect(enemyXCoordinate, canvas.getHeight() / 2 + 300, enemyXCoordinate + enemyWidth, canvas.getHeight() / 2 + 200);
canvas.drawBitmap(enemyBitmap, new Rect(0, 0, enemyBitmap.getWight(), enemyBitmap.getHight()), enemyRect, paint);
}
}
в конце концов у меня должно получиться так, что там стоит не просто какой-то прямоугольник, а картинка врага, но у меня не выскакивают не ошибки, ничего, просто не идёт отрисовка, очень надеюсь на вашу помощь, заранее спасибо)