Java-программирование (1-ые посты) 3.05.2013 / 12:04 | | mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| [Rutar], Thread.sleep(5000) в run, и 5000 = 5 СЕКУНД на паузу между отрисовками, ставь меньше. Да, я тоже не люблю GameCanvas :3 Изменено mrEDitor (3.05 / 12:05) (всего 1 раз) |
3.05.2013 / 12:06 | | NeiroNext Пользователь Сейчас: Offline
Имя: Михаил Откуда: Херсон Регистрация: 16.01.2010
| [Rutar], Честно говоря сам его нелюблю, просто там есть метод flushGraphics() он перерисовывает графику, но вот проверил с ним и всеравно неработает, аж самом стало интересно как можно реализировать твой код не меняя его схематики.
|
3.05.2013 / 12:07 | | mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| NeiroNext, как раз логику этого кода лучше поменять, ибо там OutOfMemory ежесекундно будет. Плавали, знаем.
Изменено mrEDitor (3.05 / 12:08) (всего 1 раз) |
3.05.2013 / 12:09 | | [Rutar] Пользователь Сейчас: Offline
Имя: Andriy Откуда: Львів Регистрация: 18.07.2011
| mrEDitor, наверное я криворукий, потому что опять не работает Открыть спойлер Закрыть спойлер import javax.microedition.lcdui.*;
public class MyClass extends Canvas {
private Image image;
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
public MyClass() {
try { image = Image.createImage("/items.png"); }
catch (Exception ex) {}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
protected void paint(Graphics g) {
int Width = this.getWidth();
int Height = this.getHeight();
g.setColor(0xffffff);
g.fillRect(0, 0, Width, Height);
g.drawImage(image, Width/2, Height/2, Graphics.HCENTER|Graphics.VCENTER);
try { Thread.sleep(5000); }
catch(Exception e) {}
g.setColor(0xff00);
g.drawString("String ", 10, 10, 0);
}
///////////////////////////////////////////////////////////////////////////////
public void run() {
try { Thread.sleep(5000); }
catch(Exception e) {}
this.repaint();
}
}
|
3.05.2013 / 12:11 | | mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| [Rutar], ты из paint задержку-то убери, она там ни к чему А в run МЕНЬШЕ ее сделай, я ставил 10-25, помнится |
3.05.2013 / 12:13 | | [Rutar] Пользователь Сейчас: Offline
Имя: Andriy Откуда: Львів Регистрация: 18.07.2011
| mrEDitor, не пашит, только теперь прога не виснет при запуске Открыть спойлер Закрыть спойлер import javax.microedition.lcdui.*;
public class MyClass extends Canvas {
private Image image;
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
public MyClass() {
try { image = Image.createImage("/items.png"); }
catch (Exception ex) {}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
protected void paint(Graphics g) {
int Width = this.getWidth();
int Height = this.getHeight();
g.setColor(0xffffff);
g.fillRect(0, 0, Width, Height);
g.drawImage(image, Width/2, Height/2, Graphics.HCENTER|Graphics.VCENTER);
g.setColor(0xff00);
g.drawString("String ", 10, 10, 0);
}
///////////////////////////////////////////////////////////////////////////////
public void run() {
try { Thread.sleep(5000); }
catch(Exception e) {}
this.repaint();
}
}
Мне и надо, чтобы нарисовалась картинка - пауза 5 секунт - текст Изменено [Rutar] (3.05 / 12:16) (всего 4 раза) |
3.05.2013 / 12:18 | | mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| [Rutar], repaint(), а потом пауза, не? Теоретически. И, помнится, drawString четвертым параметром 0 не берет.
Тебе машина состояния нужна. Сейчас покажу код. [code][/code]
Изменено mrEDitor (3.05 / 12:19) (всего 1 раз) |
3.05.2013 / 12:20 | | [Rutar] Пользователь Сейчас: Offline
Имя: Andriy Откуда: Львів Регистрация: 18.07.2011
| mrEDitor, не пашит В DrawString 0 - ето Graphics.Right|Graphics.Top |
3.05.2013 / 12:22 | | NeiroNext Пользователь Сейчас: Offline
Имя: Михаил Откуда: Херсон Регистрация: 16.01.2010
| mrEDitor (03.05.2013/12:07)NeiroNext, как раз логику этого кода лучше поменять, ибо там OutOfMemory ежесекундно будет. Плавали, знаем. С OutOfMemory несогласен, конечно если в paint() небудет repaint(). Ну а насчет логики то я бы тоже так не делал, но может человеку нужно именно так. |
3.05.2013 / 12:27 | | mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| NeiroNext, именно так не будет работать, с паузой в paint() Вот примерно: public class MyClass extends Canvas {
private Image image;
/* Переменная состояния
* 0 = картинка
* 1 = текст
*/
private int state;
public MyClass() {
state = 0;
try { image = Image.createImage("/items.png"); }
catch (Exception ex) {}
}
protected void paint(Graphics g) {
int Width = this.getWidth();
int Height = this.getHeight();
g.setColor(0xffffff);
g.fillRect(0, 0, Width, Height);
// В зависимости от состояния, рисовать:
switch (state) {
case 0: // Сост. #0, картинка
g.drawImage(image, Width/2, Height/2, Graphics.HCENTER|Graphics.VCENTER);
break;
case 1: // Сост. #1, текст
g.setColor(0xff00);
g.drawString("String ", 10, 10, 0);
break;
}
///////////////////////////////////////////////////////////////////////////////
public void run() {
// Пока состояние не станет максимальным (== 1)
while (state <= 1) {
// Рисовать снова
this.repaint();
// Следующее состояние
state++;
// Ждать 5 сек
try { Thread.sleep(5000); }
catch(Exception e) {}
}
}
}
Да, ноль? 0_о Я уж и не помню Изменено mrEDitor (3.05 / 12:29) (всего 4 раза) |
Всего сообщений: 16875 Фильтровать сообщения Поиск по теме Файлы топика (794)
|