|
25.01.2008, 01:43
|
#1
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Запуск функции по таймеру
Драсте.
Каким макаром заставить функцию запускаться через определённый
промежуток времени?
Подскажите.
|
(Offline)
|
|
25.01.2008, 01:46
|
#2
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Ответ: Запуск функции по таймеру
if прошло_определенное_время then запустить_функцию
3Д-программирование тут при чем?
|
(Offline)
|
|
25.01.2008, 02:00
|
#3
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Запуск функции по таймеру
как причём, вопрос по blitz3d
жалко что к таким ответам нету кнопки не полезно
|
(Offline)
|
|
25.01.2008, 02:26
|
#4
|
Бывалый
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений (для 110 пользователей)
|
Ответ: Запуск функции по таймеру
юзай Millsecs()
типо так
каждые 3 секунды будет выполняться фунция (вроде так)
В цикле:
If (Millisecs() - StartTime) < 3000 Then
Функция()
StartTime = Millisecs()
EndIf
|
(Offline)
|
|
25.01.2008, 08:44
|
#5
|
|
Ответ: Запуск функции по таймеру
Blitzerg
у тебя и так 90% сообщений не полезно, так что не можешь винить всех
|
|
|
25.01.2008, 13:02
|
#6
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Запуск функции по таймеру
Ибо эти сообщения в одном разделе болтовня.
|
(Offline)
|
|
25.01.2008, 13:14
|
#7
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Запуск функции по таймеру
Кристалл, вообще так не делается.
если у тебя будет ф-ия вызываться один раз за игровой цикл, то таймер ставь в ф-ию, проще будет менять значение таймера.
ЗЫ. ты кстати какой IDE пользуешся?
|
(Offline)
|
|
25.01.2008, 13:29
|
#8
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Запуск функции по таймеру
Родным пользуюсь потому, что хелп нужен.
Global ta
Global Fun
Function Timer()
If ta < MilliSecs() Then
ta = MilliSecs() + 200.
Fun=1
Else
Fun=0
End If
End Function
If MouseDown(1) And Fun=1 Then s_construct.s(User,pricel)
|
(Offline)
|
|
25.01.2008, 13:43
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Запуск функции по таймеру
Function Timer()
If ta < MilliSecs() Then
ta = MilliSecs() + 200.
//do_something
End If
End Function
|
(Offline)
|
|
25.01.2008, 14:51
|
#10
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Ответ: Запуск функции по таймеру
У меня так:
Есть массив timer(кол-во кнопок-функций+один обьект массива для времени)
В цикле timer(1)=MilliSecs () - это и есть тот "один обьект массива для времени"
дальше если нужно определенное действие раз в определенное время (стрельба, разгон и т.д.), то так:
If KeyDown(сканкод)=1 Then
If timer(1)>timer(2) Then
motor%=motor%+10
timer(2)=timer(1)+200
End If
Else
timer(2)=0
End If
тут еще один подводный камень, для каждого действия или кнопки нужен свой таймер, то есть
timer(2)=таймер для первого действия
timer(3)=для второго
timer(4)=и т.д.
Иначе происходит конфликт и нипашет ничего. Выше пример сделан для кнопок, но убрать кнопки и сделать вызов функций не так уж и труден.
Ну вродь так , если что гуру меня поправят.
Последний раз редактировалось Bagration, 25.01.2008 в 16:53.
Причина: забыл дописал слово "времи", а надо "времени"
|
(Offline)
|
|
25.01.2008, 16:08
|
#11
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Запуск функции по таймеру
Не... Так как у меня щас лучше,
ибо просчётом времени общим пользуется не только
юзер но и все боты.
|
(Offline)
|
|
25.01.2008, 16:46
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Запуск функции по таймеру
(хинт) очень аккуратно используйте Millisecs() в ф-иях обновления для ботов, пуль, еще чего то, чего может быть не 1 на сцене.
могут быть глюки.
|
(Offline)
|
|
25.01.2008, 16:52
|
#13
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Ответ: Запуск функции по таймеру
Ага, замечен глюк если одну и туже переменную таймера, скажем timer=MilliSecs ()+1000 использовать в двух-трех разных условиях - то баг, и ничего не пашет. Спасают тока массивы когда для разных условий свой таймер.
|
(Offline)
|
|
25.01.2008, 18:32
|
#14
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Запуск функции по таймеру
Багратион, это уже проблема алгоритма - вернее его ошибочность.
По поводу Иде: VisualBlitz IDE точно умеет работать со справкой - проверено. По другим - не знаю.
В тему: если делать таймер для чего-то, чего может быть МНОГА - то имеет смысл забирать Millisecs() 2-3 раза за цикл логики в разных местах ("тяжесть" участков примерно одинаковая) в какую нибудь переменную - меньше ошибок, однако же меньше и точность.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
26.02.2008, 20:12
|
#15
|
Разработчик
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений (для 289 пользователей)
|
Ответ: Запуск функции по таймеру
Да и не забывайте про одинаковые имена переменных совпадающими с названием переменных загруженных моделек - ваще глюк такой тяжелый - хрен найдешь . Потому что блиц даже не ругаеться по этому поводу
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:25.
|