Вниз  Java-программирование (1-ые посты)
- 3.05.2013 / 12:04
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
[Rutar], Thread.sleep(5000) в run, и 5000 = 5 СЕКУНД на паузу между отрисовками, ставь меньше.
:ps: Да, я тоже не люблю GameCanvas :3

Изменено mrEDitor (3.05 / 12:05) (всего 1 раз)
- 3.05.2013 / 12:06
NeiroNext
  Пользователь

NeiroNext 
Сейчас: Offline
[Rutar], Честно говоря сам его нелюблю, просто там есть метод flushGraphics() он перерисовывает графику, но вот проверил с ним и всеравно неработает, аж самом стало интересно как можно реализировать твой код не меняя его схематики.
- 3.05.2013 / 12:07
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
NeiroNext, как раз логику этого кода лучше поменять, ибо там OutOfMemory ежесекундно будет. Плавали, знаем.

Изменено mrEDitor (3.05 / 12:08) (всего 1 раз)
- 3.05.2013 / 12:09
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
mrEDitor, наверное я криворукий, потому что опять не работает
Открыть спойлер

- 3.05.2013 / 12:11
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
[Rutar], ты из paint задержку-то убери, она там ни к чему :) А в run МЕНЬШЕ ее сделай, я ставил 10-25, помнится
- 3.05.2013 / 12:13
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
mrEDitor, не пашит, только теперь прога не виснет при запуске :)
Открыть спойлер
Мне и надо, чтобы нарисовалась картинка - пауза 5 секунт - текст

Изменено [Rutar] (3.05 / 12:16) (всего 4 раза)
- 3.05.2013 / 12:18
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
[Rutar], repaint(), а потом пауза, не? Теоретически.
И, помнится, drawString четвертым параметром 0 не берет.

Тебе машина состояния нужна. Сейчас покажу код.
[code][/code]

Изменено mrEDitor (3.05 / 12:19) (всего 1 раз)
- 3.05.2013 / 12:20
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
mrEDitor, не пашит :zloj:
В DrawString 0 - ето Graphics.Right|Graphics.Top
- 3.05.2013 / 12:22
NeiroNext
  Пользователь

NeiroNext 
Сейчас: Offline
mrEDitor (03.05.2013/12:07)NeiroNext, как раз логику этого кода лучше поменять, ибо там OutOfMemory ежесекундно будет. Плавали, знаем. С OutOfMemory несогласен, конечно если в paint() небудет repaint(). :gg: Ну а насчет логики то я бы тоже так не делал, но может человеку нужно именно так.
- 3.05.2013 / 12:27
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
NeiroNext, именно так не будет работать, с паузой в paint() :)

Вот примерно:
  1. public class MyClass extends Canvas {
  2.  
  3. private Image image;
  4. /* Переменная состояния
  5.  * 0 = картинка
  6.  * 1 = текст
  7.  */
  8. private int state;
  9.  
  10. public MyClass() {
  11. state = 0;
  12. try { image = Image.createImage("/items.png"); }
  13. catch (Exception ex) {}
  14. }    
  15.  
  16. protected void paint(Graphics g) {
  17. int Width = this.getWidth();
  18. int Height = this.getHeight();    
  19. g.setColor(0xffffff);
  20. g.fillRect(0, 0, Width, Height);
  21.  
  22. // В зависимости от состояния, рисовать:
  23. switch (state) {
  24.  
  25. case 0: // Сост. #0, картинка
  26.   g.drawImage(image, Width/2, Height/2, Graphics.HCENTER|Graphics.VCENTER);
  27. break;
  28.  
  29. case 1: // Сост. #1, текст
  30.   g.setColor(0xff00);
  31.   g.drawString("String ", 10, 10, 0);
  32. break;
  33.  
  34. }
  35.  
  36. ///////////////////////////////////////////////////////////////////////////////
  37.  
  38. public void run() {
  39.  
  40. // Пока состояние не станет максимальным (== 1)
  41. while (state <= 1) {
  42.   // Рисовать снова
  43.   this.repaint();
  44.   // Следующее состояние
  45.   state++;
  46.   // Ждать 5 сек
  47.   try { Thread.sleep(5000); }
  48.   catch(Exception e) {}
  49. }
  50.  
  51. }
  52. }
Да, ноль? 0_о Я уж и не помню

Изменено mrEDitor (3.05 / 12:29) (всего 4 раза)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)