Вниз  Java-программирование (1-ые посты)
- 2.05.2013 / 23:15
Misha
  Пользователь

Misha 
Сейчас: Offline
[Rutar], сделай переменную которая покажет была ли отрисовка экрана, потом в paint рисуй картинку, в конце paint делай той переменной значение true, вызывай вспомогательный метод который будет делать задержку. после задержки вызывай repaint();
только не забудь сделать в paint:
if(была_отрисовка==true){
заставка была, рисуем...
} else {
вызом метода
}
не уверен, но я так решил проблему с заставкой в Minwin :)
- 2.05.2013 / 23:29
Magatino
  Администратор

Magatino 
Сейчас: Offline
[Rutar], Всё правильно делает JavaME, перед задержкой на 5 сек поставь repaint(); и в конце метода paint тоже repaint(); :gg:
- 3.05.2013 / 10:45
NeiroNext
  Пользователь

NeiroNext 
Сейчас: Offline
[Rutar], Паузу лучше делай тредом, например:
  1. ...
  2. try{
  3.  Thread.sleep(5000);
  4. } catch(Exception e){}
Так как ты делаеш сильно грузить будет.

Изменено NeiroNext (3.05 / 10:46) (всего 1 раз)
- 3.05.2013 / 11:34
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
Magatino, благодарю, но результата нет :gg:
Открыть спойлер

- 3.05.2013 / 11:37
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
NeiroNext, спасибо, но результат аналогичен :)
Открыть спойлер

- 3.05.2013 / 11:40
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
Misha, благодарю за помощь, но я не совсем понял твой метод, если не трудно дай пожалуйста свой исходник :)
- 3.05.2013 / 11:43
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
Люди... repaint() вызывает paint():
то есть ваш код делает вот что:
  1. protected void paint(Graphics g) {
  2. // Тут все ОК. Хотя высоту и ширину каждый раз получать необязательно
  3. int Width = this.getWidth();
  4. int Height = this.getHeight();    
  5. g.setColor(0xffffff);
  6. g.fillRect(0, 0, Width, Height);
  7. g.drawImage(image, Width/2, Height/2, Graphics.HCENTER|Graphics.VCENTER);
  8.  
  9. // Вот тут и началось...
  10. // Это все нужно выносить в отдельный поток (Thread)
  11. // public Void run() { ...
  12. this.repaint();
  13. long lastTime = System.currentTimeMillis ();
  14. int dTime=0;
  15. while (dTime<5000) {
  16.     long thisTime = System.currentTimeMillis ();
  17.     dTime = (int)(thisTime-lastTime);
  18.      // А где-то тут sleep
  19. }
  20. // Отрисовка, ОК
  21. g.setColor(0xff00);
  22. g.drawString("String ", 10, 10, 0);
  23. // НЕ ОК!
  24. repaint();
  25. }
:ps:The call to paint() occurs asynchronously of the call to repaint(). That is, repaint() will not block waiting for paint() to finish. The paint() method will either be called after the caller of repaint() returns to the implementation (if the caller is a callback) or on another thread entirely.

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

NeiroNext 
Сейчас: Offline
mrEDitor, Только что хотел об этом сказать, перерисовывать лучше в run(), хотя блин я чето тупое сморознул, вобщем если нужен именно такой подход то лучше GameCanvas использовать.

Изменено NeiroNext (3.05 / 11:53) (всего 3 раза)
- 3.05.2013 / 11:54
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
mrEDitor, ты предлагаешь так ?
Открыть спойлер
Так также не идет :zloj:
- 3.05.2013 / 11:58
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
NeiroNext, не люблю я GameCanvas, Canvas более простой и более удобный :)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)