Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как графического зделать картинку, все перерисовывыть долго 
:(
    Опции темы
Drug
  Дата 12.1.2006, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Проблема в следующем:
допустим есть такой кусок

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

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

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


PM MAIL   Вверх
batigoal
Дата 12.1.2006, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



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

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

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


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Alexandr87
Дата 12.1.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



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

Например
Код

//Это мож гдендь в конструкторе проделать (короче один раз)
//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);
}

Зы может я не в тему
PM Jabber   Вверх
Alexandr87
Дата 12.1.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



ЗЫ Сорри, только щас увидел что тема в топе J2ME.
PM Jabber   Вверх
Drug
Дата 12.1.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



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

// Один раз
...
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);
...
}
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.