Вниз  Микростатьи и хитрости Java
- 4.02.2011 / 13:43
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
Zvers, После того, как на объект теряется ссылка, он считается мусором. Следовательно твое предложение даже хуже, чем первое, динамическое
__________________
 Эль Презеденте
- 6.02.2011 / 11:24
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Нашел очень хорошую статью про оптимизацию J2ME приложений.
__________________
 let live
- 6.02.2011 / 11:29
kiriman
  Пользователь

kiriman 
Сейчас: Offline
aNNiMON (06.02.2011/11:24)
Нашел очень хорошую статью про оптимизацию J2ME приложений.
aNNiMON [i] [16.01.11 17:53]
* - Не перестараться, а то прога будет маленькой и глючной)
[ответить] [жалоба] [удалить]
У мя эти статьи в пдф были. Они с какой-то конференции.
- 6.02.2011 / 13:49
Zvers
  Пользователь

Zvers 
Сейчас: Offline
ух ты спасибо! +
- 7.02.2011 / 00:13
dzanis
  Пользователь

dzanis 
Сейчас: Offline
Я вот нашол сколько ставить паузу в игре.
Тестируя на эмуляторе ставлю Thread.sleep(20),результат хороший,но у меня на реальном телефоне это слишком медленно... а у когото на мошьном мобильнике всё слишком быстро двигается и играть невозможно.
Вот моё решение как контролировать fps.
  1. final long MAX_FPS = 25;//это максимальный fps
  2. final long MAX = 1000/MAX_FPS;
  3. //  цикл
  4.     public void run() {
  5.         while (true) {
  6.             long begin=System.currentTimeMillis();
  7. //...          
  8.  // бла-бла ... всякий код и прорисовка ...
  9. //...
  10.    long delay = System.currentTimeMillis() - begin;
  11.       try {
  12.       Thread.currentThread().sleep( delay > MAX ? 0 : MAX - delay ) ;
  13.             } catch (InterruptedException e) {}
  14.         }
  15.     }

- 23.11.2011 / 21:19
Alsawin
  Пользователь

Alsawin 
Сейчас: Offline
- 11.02.2012 / 19:12
nitsu
  Пользователь

nitsu 
Сейчас: Offline
Бывает к примеру, когда во время игры вам позвонили или пришло смс. То когда вы возвращаетесь в игру если ее написал непрофессиональный программист, то она начинается с нуля. Я расскажу вам как сделать фильтр, чтобы после того как вы ответили/завершили вызов мидлет продолжился. Главный класс midlet имеет 3 метода : startApp, pauseApp и destroyApp. Когда вам позвонили автоматически вызывается метод pauseApp, когда вы закончили то снова startApp. Но если у вас в startApp написано например:
canvas canvas = new canvas();
display.setCurrent(canvas);
то если после паузы заново вызовется startApp то canvas создастся 2 раз и его текущее состояние аннулируется. По этому мы:
инициализируем булеан например private boolean fc = false;
и в методе startApp ставим фильтр:

public static startApp();
{
if (!fc) {
canvas canvas = new canvas();
fc = true;
}
display.setCurrent(canvas);
}

теперь если приложение запустится 1 раз то поставит fc на true а если этот метод запустится 2 раз то если параметр fc будет true то метод просто передаст управление canvas и он дальше будет продолжать работать.
вроде все
- 11.02.2012 / 20:31
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
nitsu, так вот оно что... А я всё ломал голову, почему на Nokia такие проблемы.

Предлагаю два варианта:
  1. private Canv canv;
  2.  
  3. public void startApp() {
  4.    if (canv == null) {
  5.       canv = new Canv();
  6.    }
  7.    display.setCurrent(canv);
  8. }

  1. private Canv canv;
  2.  
  3. public Main() {
  4.     canv = new Canv();
  5. }
  6.  
  7. public void startApp() {
  8.    display.setCurrent(canv);
  9. }

__________________
 let live
- 11.02.2012 / 20:54
Salat-Cx65
  Пользователь

Salat-Cx65 
Сейчас: Offline
Не только Нокиа. Последние Семены, Флай. Это с чем сам сталкивался
- 11.02.2012 / 20:57
AlexeyW
  Пользователь

AlexeyW 
Сейчас: Offline
Маленькое исправление (из личного опыты):
  1. public void startApp() {
  2.     if(canvas == null) {
  3.         canvas = new Canvas();
  4.         Display.getDisplay(this).setCurrent(canvas);
  5.     }
  6. }
Метод setCurrent(canvas) достаточно вызвать в startApp() один раз. При сворачивании приложения текущий Displayable некуда не улетучивается. Он как был в памяти приложения на экране, так там и остался. Если только в методах pauseApp() или destroyApp() будет смена текущего кьюрента, тогда надо будет выводить каждый раз canvas при вызове startApp()'а.
Наверх  Всего сообщений: 83
Фильтровать сообщения
Поиск по теме
Файлы топика (6)