Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JavaME timing 
:(
    Опции темы
Супермен
Дата 27.8.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.8.2006

Репутация: нет
Всего: нет



Я не понял как в мидлете узнать точное время, прошедшее с определенного момента. Например, в каждом кадре человечек должен быть смещен на расстояние, зависящее от заданной скорости и прошедшего времени спустя последнего кадра. На разных телефонах - разная производительность, поэтому мне нужно что-то вроде:

drawFrame () {
...
 dxTime = getTime() - time;
 moveCharacter(speed * dxTime);
 time = getTime();
...
}

Подскажите...
PM MAIL   Вверх
Samuil
Дата 28.8.2006, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

Репутация: 5
Всего: 6



А что использовал для интервалов времени? Thread?


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
604
Дата 28.8.2006, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 15.4.2005

Репутация: нет
Всего: 1



System.currentTimeMillis();
PM MAIL   Вверх
Samuil
Дата 28.8.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

Репутация: 5
Всего: 6



Надо так:
Thread thr=new Thread(this);
thr.start();
В методе run(){
try{
Thread.sleep(временой интервал в милисеках);
}catch(Exception e){}
}
И на всех телефонах будет все одинаково
Если этого мало то читай в документации smile 



--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
604
Дата 28.8.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 15.4.2005

Репутация: нет
Всего: 1



Samuil, Врятли будет одинаково.
Поскольку трубки рисуют с разной скоростью, время выполнения одной итерации цикла будет разным.
Лучше так.
Код

public void run()
  {
    long startTime;

    while(true)
    {
      startTime = System.currentTimeMillis();
    
      draw();

      try
      {
        Thread.sleep(Math.max(0, (startTime + "Задержка в миллисек.") - System.currentTimeMillis()));
      }
      catch (Exception e)
      {}
    }
  }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.