![]() |
Ограничение по координатам
День добрый.
Скажите, как можно сделать ограничение движения изображения по координатам. Мне не нужно, что бы картинка игрока улетала за пределы экрана. Ходим клавишами. Как только Х или У стали меньше\больше заданного значения - остановка... Это я сделал, но после возобновить движение уже не получается... If avatar_x>1 And avatar_x<800 IfKeyDown(KEY_LEFT) avatar_x=avatar_x - 3 IfKeyDown(KEY_RIGHT) avatar_x=avatar_x + 3 Еще подскажите, как сделать такое столкновение с непроходимым объектом. Заранее спасибо. |
Re: Ограничение по координатам
вот пример для 2Д:
If avatar_x>0 And avatar_x<800 IfKeyDown(KEY_LEFT) avatar_x=avatar_x - 3 IfKeyDown(KEY_RIGHT) avatar_x=avatar_x + 3 if avatar_x<=0 then avatar_x=1 if avatar_x>=800 then avatar_x=799 можно так обойти проблему..... |
Re: Ограничение по координатам
о. спасибо. так и обойду...
|
Re: Ограничение по координатам
ща, в первый раз одну важную вещь не заметил...
вот прально: If avatar_x>0 And avatar_x<800 IfKeyDown(KEY_LEFT) avatar_x=avatar_x - 3 IfKeyDown(KEY_RIGHT) avatar_x=avatar_x + 3 endif if avatar_x<=0 then avatar_x=1 if avatar_x>=800 then avatar_x=799 |
Re: Ограничение по координатам
Хорошо, а как сделать остановку при соприкосновении? Мне это для создания уровня нужно... Препятствия.
|
Re: Ограничение по координатам
Это назывется "коллизия". А сделать так, проверять при каждом шаге координты своего объекта, потом смотреть не влетел ли в другой объект, если влетел, то отодвинуться.
|
Re: Ограничение по координатам
Хм... жаль, что только так... Спасибо.
|
Re: Ограничение по координатам
То что я писал раньше это "коллизия по факту". Когда уже столкнулся.
Можно сделать "опережающую коллизию". То есть посмотреть будущее место твоего объекта, если там уже есть объект, то не идти туда, а если нет ,то идти. Блин, как-то мутно объяснил. Но вроде все так. Пошел я спать. ;) |
Re: Ограничение по координатам
Я сделал бы так:
Код:
PlayerX#=100 IKdLeft - Переменная к которой привязываем нажате кнопки Влево. IKdRight - Переменная к которой привязываем нажате кнопки Вправо. Логически: Если нажата кнопка, то переменная будет 1, если не нажата то 0, и вот такая форма "IKdRight-IKdLeft" очень удобна, и умнажаем её на скорость перемещения. А дальше простые ограничения ;) |
Часовой пояс GMT +4, время: 04:19. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot