foldel, в j2me нельзя постоянно рисовать в один и тот же graphics, т.е. получить его при старте игры и потом использовать не прокатит. Все отрисовки делаются в переопределённом методе
public void paint(Graphics g).
Пример:
public void paint(Graphics g) {
Draw(g); //твоя функция рисования
}
Второе: нельзя (ОЧЕНЬ нежелательно) вызывать отрисовку в системных функциях опроса кнопок, таких как keyPressed, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased.
Типичной конструкцией для игры является наличие главного цикла, в котором есть опрос пользовательского ввода, логика игры и отрисовка.
Для j2me нужно добавить в класс канваса
implements Runnable, и главный игровой цикл прописать в обязательной для переопределения функции
run()
Например:
boolean bRunning = true;
while(bRunning == true) {
checkUserInput();
doGameLogic();
flip();
}
Для функции flip такой код:
public void flip() {
repaint(); //вызывает функцию paint(), в которой мы всё рисуем
serviceRepaint(); //приказ рисовать пока не нарисует (внимательно читай описание!)
}