Итак, у меня есть эта замечательная игра для Android (змей-клон с анимацией), которая делает финальное тестирование, когда BAM! Мое второе тестирующее устройство (Nexus 1, HTC Magic было моим 1.) мерцает при рисовании.
Кто-нибудь знает, почему этот код не будет работать правильно с Nexus 1?
public void draw(Canvas canv) {
int count = 0;
isHead = false;
for (int i = 0; i < SPACES; i++) {
if (mDrawSpaces[i]) {
count++;
if (count == SPACES - 1) {
setDrawSpacesToFalse();
if (bmp != null)
super.drawPlaceable(canv);
}
} else {
mDrawSpaces[i] = true;
return;
}
}
}
У меня есть список Птиц (Птицы / НЛО / другие) с ПРОСТРАНСТВОМ (4) раза больше элементов, которые рисуются на экране. Поэтому я подумал про себя, что вместо расчета поворота и масштаба изображений для каждой Птицы у меня есть только 3 заполнителя между птицами, у каждого из которых есть изображение, которое нужно нарисовать, как только они станут видимыми. Эти картинки генерируются первой птицей:
public void drawHead(Canvas canv) {
//calculate the rotation & mirroring of the picture
super.drawPlaceable(canv);
//generate the pics for smaller birds following it
mat.preScale((float) 0.6, (float) 0.6);
this.bmp = Bitmap.createBitmap(SPRITESHEET, Bird.mCurFrame
* BIG_W[mUseBird], 0, BIG_W[mUseBird], BIG_H[mUseBird],
mat, true);
}
Есть идеи? Мой метод рисования (Canvas) неверен в какой-то части?
РЕДАКТИРОВАТЬ: я не знаю почему, я не знаю как, но сегодня днем, когда я снова проверил его, он волшебным образом работал ...