Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 07.09.2010, 18:33   #1
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Печаль Куда девается время?!

Что-то не так с циклом задержки. Очень много времени расходует свыше отведённых 50 мс. Посмотрите пожалуйста
repeat
...

repeat
delay(1);
until(lastSavedTime-GetRelativeTimeMs<-50);
lastSavedTime:=GetRelativeTimeMs;

...
until(false);
Цикл выполняется 4-5 раз и жрёт где-то 63 мс. При том, что все остальные команды,находящиеся в основном цикле, расходуют 15-30 мс,
__________________
---
(Offline)
 
Ответить с цитированием
Старый 07.09.2010, 20:59   #2
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Куда девается время?!

ты философ))))

я обычно делаю так:
delay(getRelativeTimeMs-lastSavedTime);

вроде потерь не замечал, хотя никогда особо и не мерял
(Offline)
 
Ответить с цитированием
Старый 07.09.2010, 21:04   #3
Dj_Alex
ПроЭктировщик
 
Аватар для Dj_Alex
 
Регистрация: 08.03.2009
Адрес: Saransk
Сообщений: 143
Написано 25 полезных сообщений
(для 45 пользователей)
Ответ: Куда девается время?!

вообще нужно эту разницу брать по модулю, т.к. getRelativeTimeMs возвращает в диапазоне от -2^31 до 2^31, т.е. может принимать отрицательные значения
__________________
(Offline)
 
Ответить с цитированием
Старый 07.09.2010, 22:18   #4
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Куда девается время?!

Ненавижу философию... А модуль я отсюда стёр, чтобы некоторые особо умные не говорили, что это он тормозит (на всякий случай: я не о присутствующих)
delay(getRelativeTimeMs-lastSavedTime); - а как это работает? Идею понял, но всё же что-то не то... Может, что-то вроде delay(50-abs(getRelativeTimeMs-lastSavedTime)); ?



И ещё вопрос по этой теме: нельзя ли выводить на экран графическую инфу, координаты которой хранятся в типе REAL, не используя тормознутый TRUNC?
__________________
---
(Offline)
 
Ответить с цитированием
Старый 08.09.2010, 12:17   #5
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Куда девается время?!

а, ну да)) ты прав. только без модуля я обычно делаю заранее проверив что число >0.
(Offline)
 
Ответить с цитированием
Старый 08.09.2010, 12:27   #6
Dj_Alex
ПроЭктировщик
 
Аватар для Dj_Alex
 
Регистрация: 08.03.2009
Адрес: Saransk
Сообщений: 143
Написано 25 полезных сообщений
(для 45 пользователей)
Ответ: Куда девается время?!

Сообщение от IDOL 1234 Посмотреть сообщение
И ещё вопрос по этой теме: нельзя ли выводить на экран графическую инфу, координаты которой хранятся в типе REAL, не используя тормознутый TRUNC?
чем это trunc тормознут, он ж вроде только отбрасывает дробную часть.
а вообще координаты для графики нужны в int, т.к. пиксель ето дискретная штука
__________________
(Offline)
 
Ответить с цитированием
Старый 09.09.2010, 14:27   #7
Ksanatos
ПроЭктировщик
 
Аватар для Ksanatos
 
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений
(для 17 пользователей)
Ответ: Куда девается время?!

trunc округляет число, потому и тормознут.
Делай что-то вроде такого y:=x-frac(x);
это я вычитал в хелпе от odd по мойму
__________________



(Offline)
 
Ответить с цитированием
Старый 09.09.2010, 21:03   #8
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Куда девается время?!

trunc только отбрасывает. округляет round (не уверен в наличии его в МП).
в любом случае, real у меня всегда выходит только при делении, а значит проще делить div'ом чем округлять/отбрасывать.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:58.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com