Функция рисования в пользовательском режиме просмотра проблем (Android Honeycomb) - PullRequest
0 голосов
/ 19 июня 2011

Я сделал игру (называемую Block Crusher ), которую можно скачать с Market Today. Поскольку в наши дни появляется все больше планшетов HoneyComb, я хотел сделать свою игру совместимой с этими планшетами.

Но я столкнулся с некоторыми проблемами, когда попытался запустить игру на Motorola Xoom.

В этой игре у меня есть пользовательский вид. Этот вид рисует игровое поле на экране. Он рисует блоки разных цветов. Когда вы нажимаете на них, вы уничтожаете блоки, а остальные упадут.

На устройстве с предварительной сотовой структурой это работает без проблем. На Motorola Xoom у меня проблемы с прорисовкой. Каким-то образом старая позиция блоков не стирается, и это делает блоки очень длинными, вместо того, чтобы упасть. (Не уверен, что я записал это так, что это понятно, но я надеюсь на это).

Я даже добавил следующий код в свою функцию рисования, чтобы полностью стереть холст перед рисованием на нем нового кадра:

@Override
public void draw(Canvas canvas)
{
    // Disable super.draw call to make the control transparent.
    // super.draw(canvas);

    // Clear the entire screen before starting drawing.
    mTransparantPaint = new Paint();
    mTransparantPaint.setColor(0x00000000);
    canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), mTransparantPaint);

Но почему-то у меня возникают проблемы с перерисовкой, когда блоки падают.

Кто-нибудь знает, почему у меня возникают такие проблемы на Соте? Это как-то связано с аппаратным ускоренным конвейером 2D-графики HoneyComb? Я не включил или отключил что-либо для этого.

Если у вас планшет Honeycomb и вы хотите увидеть проблему, вы можете загрузить сборку для разработки с http://peerke.no -ip.info / morbur / Svn-267.1 / MorburActivity-release.apk

1 Ответ

0 голосов
/ 14 августа 2011

Я понял, что super.draw (canvas) всегда нужен в Honeycomb. Это не создавало проблем в предыдущих версиях Android.

...