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) 
                 |