![]() |
плавное перемещение по одному нажатию
вобщем нужно по команде
KeyHit() переместить объект на 20 единиц вправо, чтобы при этом он двагался плавно, то есть видно было движение на каждую единицу пробовал цикл - он просто перемедается в конечный пункт делал задержку Delay - тоже самое пробовал так <code> for i=1 to 21 old=Millisecs() while Millisecs()-old<300 wend translateentity entity, 1, 0, 0 next </code> но и так не катит, подскажите плиз |
Ответ: плавное перемещение по одному нажатию
так чтоли?
PHP код:
|
Ответ: плавное перемещение по одному нажатию
Учимся понимать логику программы:
Цикл выполняется итерация за итерацией , и лишь затем следует выход из цикла. Если у тебя в цикле нет отрисовки (рендера) - то изменений в течение цикла ты не увидишь. Решение: ввести переменную-таймер, и в главном цикле программы (где есть отрисовка) сравнивать текущее время и таймер. Конкретнее: при нажатии кнопки переменная-таймер устанавливается на значение "текущее время + 2 секунды"; в цикле проверяется условие "если текущее время меньше, чем в переменной-таймере", и в теле этого условия лежит смещение объекта. |
Ответ: плавное перемещение по одному нажатию
я пробовал ставил
PHP код:
Taugeshtu, извини я что то никак не допру, ты предлагаешь передвигать в главном цикле, если включен таймер, таймер включается нажатием на клавишу, а выключается по окончании перемещения, я правильно понял да, если так, то спасибо сейчас попробую |
Ответ: плавное перемещение по одному нажатию
вот сделал так
PHP код:
|
Ответ: плавное перемещение по одному нажатию
WhiteBlack, учите основы, почитайте уроки и все получится.
|
Ответ: плавное перемещение по одному нажатию
Цитата:
|
Ответ: плавное перемещение по одному нажатию
если переменную не обьявлять глобальной то она на каждый цикл будет обнулятся
если oldX=EntityX(cubes(1)) прописать в функции после If flag=1 то oldX будет постоянно присваивать измененное значение, т.е. его нужно определить один раз во время нажатия кнопки еще можно упростить оператор if с помщью else PHP код:
|
Ответ: плавное перемещение по одному нажатию
pepel, блин спасибо, что то я про это забыл:)
теперь он почему то не останавливается после 20 единиц перемещения странно, объявил как глобальную перемещение стоит по 0.5, значит через 40 циклов должен остановиться вроде |
Ответ: плавное перемещение по одному нажатию
попробуй так:
If EntityX(cubes(1))<oldX+20 TranslateEntity cubes(1), .5 , 0, 0 else flag=0 EndIf |
Ответ: плавное перемещение по одному нажатию
Цитата:
PHP код:
PHP код:
ну ладно всем большущее спасибо |
Ответ: плавное перемещение по одному нажатию
<> - не равно
< - меньше |
Ответ: плавное перемещение по одному нажатию
Цитата:
у меня была идея пока не равно двигается, как только стало равным прекращается |
Ответ: плавное перемещение по одному нажатию
Вообще не целочисленные переменные сравнивать надо с погрешностью, а не простым "=" или "<>" т.к. они не точные.
|
Часовой пояс GMT +4, время: 00:34. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot