Ответ: FAQ по B3D
NovICE
Код:
If KeyDown(17) Then |
Ответ: FAQ по B3D
|
Ответ: FAQ по B3D
2avel: Средствами Блица так прокатит замечательно.
Хоть бы так, к примеру: Код:
IF KEYDOWN(17)=1 THEN |
Ответ: FAQ по B3D
Diplomat ладно, признаю. прокатит.
я просто имел ввиду, что если, просто, написать внутри Animate, то толку не будет... Все равно надо вводить переменную-флаг. а jimon этого не указал. Думаешь до новичков дойдет, что там надо ее написать? я думаю, что нет. именно это я и имел ввиду. а то, что это можно реализовать я и сам знаю. и давно уже указал как... просто, некоторые плохо читают темы... да и все-равно этот вариант как-то через Ж... слишком много условий... ИМХО мой вариант проще... хотя бы не надо лишней переменной... для множества моделей в твоем случае прийдется массив задавать для одних только флагов... хотя, конечно, это кому как удобнее. посему я и указал, что вариантов много... вот, решил все же продублировать... Цитата:
|
Ответ: FAQ по B3D
Такое количество ветвлений необходимо. Более того, логичным решением в сколь-нибудь более серьезной ситуации было бы вынести модуль анимаций в отдельную функцию. Но в условном случае данного простейшего примера это было бы все таки не вполне целесообразно.
А насчет твоего решения... Если представить ситуацию, когда обьект должен иметь несколько различных анимационных последовательностей и не замирать намертво при остановках, а проявлять признаки жизнедеятельности, то оно теряет свою прелесть. А так- для примера конечно может жить. ) |
Ответ: FAQ по B3D
|
Ответ: FAQ по B3D
в маленькой аркадке функция управления анимацией занимает 230 строк.
Там сам черт ногу сломит. :))) Нужно пользоваться переменными . тогда все просто Код:
he\a_seq=AnimSeq (he\en) Главное - понять принцип Он удобен |
Re: FAQ по B3D
Вопрос: Как пользоватся командами - "таймер1 = CreateTimer("длительность"), WaitTimer("таймер1") , FreeTimer("таймер1") ".
Сколько не эксперементировал, нечего путнего не вышло... |
Ответ: FAQ по B3D
Crayzi, в справке блица, есть примеры для работы с этими функциями.
|
Ответ: FAQ по B3D
попробуй создай таймер Createtimer(200) и помести команду Waittimer() в цикл перед Renderworld(), сразу поймешь как это работает, а значит и научишься как ими пользоваться. В общем говоря, это таймер который затормаживает работы программы на установленное время ( в миллисекундах ).
|
Ответ: FAQ по B3D
хм. имхо одна из бесполезнейших команд.
Delay(200) сделает то же самое. или, имеется ввиду на 200мс с последнего вызова? |
Ответ: FAQ по B3D
Нет, сравнивать таймер с задержкой- нельзя.
Таймер- есть самый простой, наиболее стабильный и наименее затратный по ресурсам из существующих ныне способов стабилизации ФПС в Блице. Можно сказать, что он является одним из лучших способов синхронизации. Копий на этот счёт сломано немало, но факт остаётся фактом: для маленькой игры таймер предпочтительней любых других методов синхронизации. Delay методом синхронизации очевидно не является. Createtimer(200) создавать не стОит. Диапазон оптимальных значений для таймера- 30-40. В крайнем случае- 25-60. Кроме того, для придания эксперименту чистоты логично выключить вертикальную синхронизацию. |
Ответ: FAQ по B3D
Цитата:
while a_time+30>millisecs() wend a_time=millisecs() ? |
Ответ: FAQ по B3D
Ну, почти. Во-первых, таймеру указывается желаемый ФПС, а не желаемая задержка; во-вторых, таймер просто останавливает выполнение программы, уменьшая ФПС до нормы, а не глушит систему намертво пустым циклом для этих же целей; и в-третьих... гм.. в нем меньше букафф. ))
|
Ответ: FAQ по B3D
Да. Таймер полезная функция. У себя в игрушке (небольшая аркада) я им и пользуюсь. Ограничиваю FPS до 60.
|
Часовой пояс GMT +4, время: 11:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot