Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Как вы выводите заставку "Congratulations!" ?


Автор: vlad275 18.4.2008, 15:30
Пробовал так:
Код

if (iScore==100) { 
g.drawImage(image3, 0, 0, Graphics.TOP | Graphics.LEFT);     
delay(2000);
exit();
}


Ругается на delay   :-(

Автор: dual 18.4.2008, 17:27
Может быть Thread.sleep(2000) вместо delay()?

Автор: vlad275 18.4.2008, 17:48
Project settings saved
Building "EngMIDlet"
C:\WTK2.5.1\apps\EngMIDlet\src\Screen.java:189: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(2000);
            ^
1 error
com.sun.kvem.ktools.ExecutionException
Build failed

Автор: math64 18.4.2008, 18:00
Код

      Alert alert = new Alert ("Congratulation!", "You won!", image, AlertType.CONFIRMATION);
      alert.setTimeout (2000);
      getDisplay ().setCurrent (alert, canvas);

Автор: vlad275 18.4.2008, 22:00
Компилятор ругается.

Вот так не ругается но все равно заставку не выводит:

Код

Display display;

...


if (v==2 && iScore==2)
{
Alert alert = new Alert ("Congratulation!", "You won!",image1, AlertType.CONFIRMATION);
      alert.setTimeout (2000);
      display.setCurrent(alert);
}

Автор: math64 18.4.2008, 22:56
Код

display.setCurrent(alert, canvas);

canvas - форма которая должна отображатся по истечении заданного времени
image желательно размером display.getBestImageWidth/Height(Display.ALERT);
Можно вывести текст в Ticker.
Если выводить надпись/картинку на канве - используй Timer для задержки
Можно выдать звуковое сопровождение, и по окончании звука убрать картинку
Код

   boolean winning;
   ...
    try {
      winning = true;
      if (player != null)
        player.close ();
      InputStream is = getClass ().getResourceAsStream ("/sound/win.amr");
      player = Manager.createPlayer (is, "audio/x-amr");
      player.addPlayerListener (new PlayerListener () {
        public void playerUpdate (Player p, String s, Object obj) {
          if (player == p && s == END_OF_MEDIA) {
            player.close ();
            player = null;
            winning = false;
            canvas.repaint();
          }
        }
      });
      player.start ();
    } catch (IOException ioe) {
    } catch (MediaException me) { }


Автор: vlad275 18.4.2008, 23:06
:-(
Цитата


Project settings saved
Building "EngMIDlet"
C:\WTK2.5.1\apps\EngMIDlet\src\Screen.java:133: cannot find symbol
symbol  : class InputStream
location: class Screen
      InputStream is = getClass ().getResourceAsStream ("/sndMsgSent.wav");
      ^
C:\WTK2.5.1\apps\EngMIDlet\src\Screen.java:134: cannot find symbol
symbol  : variable player
location: class Screen
      player = Manager.createPlayer (is, "/sndMsgSent.wav");
      ^
C:\WTK2.5.1\apps\EngMIDlet\src\Screen.java:134: cannot find symbol
symbol  : variable Manager
location: class Screen
      player = Manager.createPlayer (is, "/sndMsgSent.wav");
               ^
3 errors
com.sun.kvem.ktools.ExecutionException
Build failed

Автор: math64 19.4.2008, 00:13
Код

import java.io.InputStream;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.PlayerListener;


Добавлено через 3 минуты и 47 секунд
Player player = Manager.createPlayer (is, "audio/x-amr"); - для amr
Player player = Manager.createPlayer (is, "audio/x-wav"); - для wav

Добавлено через 8 минут и 53 секунды
Player player = Manager.createPlayer (is, "audio/midi"); - для mid

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)