Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Как графического зделать картинку


Автор: Drug 12.1.2006, 00:50
Проблема в следующем:
допустим есть такой кусок

protected void paint (Graphics g) {
//...
// перемещаю начало координат на x и y, и чего-нибудь рисую
g.translate(x, y);
g.drawRect(10, 20, 30, 40);
//...
}

Соответственно, если изменять x и y, и перерисовывать, то фигурка будет двигаться.. А как зделать так, чтоб эту фигурку каждый раз поновой не рисовать в g..?

Может можно как-то из графического зделать картинку..?


Автор: batigoal 12.1.2006, 08:46
Цитата(Drug @ 12.1.2006, 01:50 Найти цитируемый пост)

А как зделать так, чтоб эту фигурку каждый раз поновой не рисовать в g..?

Собственно, никак. Ее по-любому придется после смещения отрисовывать полностью.

Автор: Alexandr87 12.1.2006, 09:42
Если сама фигурка - это не просто прямоугольник, а нечто более сложное, то чтобы каждый раз неотрисовывать эту фигурку "по-шагам", можно сделать буффер и поместить фигурку туда, а затем отрисовывать буффер.

Например
Код

//Это мож гдендь в конструкторе проделать (короче один раз)
//width и height - размеры твоей фигурки
Image buf=createImage(width,height);
Graphics gr=buf.getGraphics();
//Рисуем фигруку
gr.drawRect(10, 20, 30, 40);
.....

Затем в событии отрисовки 
public void paint(Graphics g) {
    //curx и cury - координаты точки левого верхнего угла - где отрисовывать
    g.drawImage(buf,curx,cury,width,height,null);
}

Зы может я не в тему

Автор: Alexandr87 12.1.2006, 17:16
ЗЫ Сорри, только щас увидел что тема в топе J2ME.

Автор: Drug 12.1.2006, 17:32
Собственно я это и хотел, только с небольщими поправками.. У меня (если убрать все сложности) выглядит так:

// Один раз
...
Graphics gr;
Image buf = Image.createImage(width, height);
...
gr=buf.getGraphics();
...
// Затем в событии отрисовки
protected void paint (Graphics g) {
...
g.drawImage(buf, curX, curY, Graphics.LEFT|Graphics.TOP);
...
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)