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

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

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 27.08.2007, 21:21   #1
Valet
Знающий
 
Регистрация: 16.07.2006
Сообщений: 304
Написано 3 полезных сообщений
(для 0 пользователей)
Ограничение по координатам

День добрый.

Скажите, как можно сделать ограничение движения изображения по координатам. Мне не нужно, что бы картинка игрока улетала за пределы экрана. Ходим клавишами. Как только Х или У стали меньше\больше заданного значения - остановка... Это я сделал, но после возобновить движение уже не получается...

If avatar_x>1 And avatar_x<800
IfKeyDown(KEY_LEFT) avatar_x=avatar_x - 3
IfKeyDown(KEY_RIGHT) avatar_x=avatar_x + 3


Еще подскажите, как сделать такое столкновение с непроходимым объектом.

Заранее спасибо.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 21:34   #2
XenuS
Нуждающийся
 
Регистрация: 31.07.2007
Сообщений: 89
Написано одно полезное сообщение
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
можно так обойти проблему.....
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 21:43   #3
Valet
Знающий
 
Регистрация: 16.07.2006
Сообщений: 304
Написано 3 полезных сообщений
(для 0 пользователей)
Re: Ограничение по координатам

о. спасибо. так и обойду...
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 21:46   #4
XenuS
Нуждающийся
 
Регистрация: 31.07.2007
Сообщений: 89
Написано одно полезное сообщение
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
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 23:24   #5
Valet
Знающий
 
Регистрация: 16.07.2006
Сообщений: 304
Написано 3 полезных сообщений
(для 0 пользователей)
Re: Ограничение по координатам

Хорошо, а как сделать остановку при соприкосновении? Мне это для создания уровня нужно... Препятствия.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 23:31   #6
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Ограничение по координатам

Это назывется "коллизия". А сделать так, проверять при каждом шаге координты своего объекта, потом смотреть не влетел ли в другой объект, если влетел, то отодвинуться.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 23:38   #7
Valet
Знающий
 
Регистрация: 16.07.2006
Сообщений: 304
Написано 3 полезных сообщений
(для 0 пользователей)
Re: Ограничение по координатам

Хм... жаль, что только так... Спасибо.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 23:42   #8
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Ограничение по координатам

То что я писал раньше это "коллизия по факту". Когда уже столкнулся.
Можно сделать "опережающую коллизию". То есть посмотреть будущее место твоего объекта, если там уже есть объект, то не идти туда, а если нет ,то идти. Блин, как-то мутно объяснил. Но вроде все так. Пошел я спать.
(Offline)
 
Ответить с цитированием
Старый 27.08.2007, 23:45   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Ограничение по координатам

Я сделал бы так:
PlayerX#=100
PlayerSpeed#=3
IKdLeft=KeyDown(KEY_LEFT)
IKdRight=KeyDown(KEY_RIGHT)
PlayerX:+(IKdRight-IKdLeft)*PlayerSpeed
If PlayerX<0 PlayerX=0
If PlayerX>200 PlayerX=200
PlayerX - Координата игрока.
IKdLeft - Переменная к которой привязываем нажате кнопки Влево.
IKdRight - Переменная к которой привязываем нажате кнопки Вправо.
Логически: Если нажата кнопка, то переменная будет 1, если не нажата то 0, и вот такая форма "IKdRight-IKdLeft" очень удобна, и умнажаем её на скорость перемещения. А дальше простые ограничения
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ограничение мышки по вертикали KingMaks Blitz3D 15 02.01.2010 21:17
Подсчет и ограничение символов в Input() ArtemkA 2D-программирование 8 24.07.2009 02:37
Ограничение преремещения объекта областью видимости камеры Raiter 3D-программирование 2 10.01.2008 03:27
Ограничение наклона камеры в FPS Maxxx.!!!. 3D-программирование 21 28.12.2007 01:01
Проблемка. Не срабатывает ограничение 0.о Raiter 2D-программирование 2 27.10.2007 12:14


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


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