Объясните застревания

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Объясните застревания

Страницы: 1  новая тема

Автор Сообщение

частый гость
Группа: Участники
Сообщений: 24
Добавлено: 05-10-2006 01:01
Блин все никак невъеду в чем прирчина застревания объектов. Где найти ответ

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 05-10-2006 01:10
Каких застряваний? Поточнее

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 05-10-2006 01:15
Ну вобще бывают несколько факторов.
1 При колизии (столкновении) со стеной нужно ставить скорость равную 0 (если платформенная игра hspeed=0)
2 Бывают застрявания при виде сверху сам с эти сталкивался иза спрайта. Например нажал вниз перс подошел к стенке и остановился нажимаешь вверх он начинает кряхтеть пыптаясь выйти из стенки. Просто спрайт и вниз и вверх отличались размером хотьба вверх была больше и поэтому залазила в стенку. Может ииза не точночти центровки спрайта.

частый гость
Группа: Участники
Сообщений: 24
Добавлено: 05-10-2006 01:26
Так у меня в платформах тоже спрайты бывают разные. Но больше всего мне ненравиться когда объект сталкивается в воздухе со стенкой и при нажатии кнопки движения в направлении стены не падает, а падает после отпускания всех кнопок.

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 05-10-2006 02:56
Так у меня в платформах тоже спрайты бывают разные. Но больше всего мне ненравиться когда объект сталкивается в воздухе со стенкой и при нажатии кнопки движения в направлении стены не падает, а падает после отпускания всех кнопок

У мнея така ятрабла с моим соником но там у меня не правльный подход был сначала. Чтоб исправить надо все переделывать. Оставлю как есть первый проект можно из глюками. А на дальше буду знать.

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 05-10-2006 05:16
Так у меня в платформах тоже спрайты бывают разные. Но больше всего мне ненравиться когда объект сталкивается в воздухе со стенкой и при нажатии кнопки движения в направлении стены не падает, а падает после отпускания всех кнопок.


проверяй сначала столкновение в положении (x+hspeed,y) Если там стена, то делай move...solid() и hspeed=0 - короче прибиваешь объект ближе к стене. А потом уже проверяешь по (x,y+vspeed) на наличие пола или потолка.

Во всяком случае я делал так, когда использовал маски.

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 05-10-2006 14:14
Вобще лучше обходится без скоростей,лучше через x и y

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 05-10-2006 14:32
Вобще лучше обходится без скоростей,лучше через x и y

Согласен! не проще ли написать в событии клавиши "направо" код:

if place_free(x+4,y) {x+=4}

А влево:

if place_free(x-4,y) {x-=4}

У меня раньше в игре платформенной было со скоростями и все застревало. Потом исправил на вышеуказанный код и все заработало

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 05-10-2006 14:38
И еще: при коллизии со стенкой сделай move_contact_solid(270,12)
Только в таком случае исправь код с управлением такой, ка я сказал - иначе при столкновении со стеной(даже слева или справа) герой будет с бешеной скоростью лететь вниз, а этот код:
if place_free(x+4,y) {x+=4}

А влево:

if place_free(x-4,y) {x-=4}

Исключает коллизию со стеной

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 05-10-2006 16:22
А если тебе наплевать на играбельность своей игры то:
if place_free(x-10,y) {x-=4} можеш поставить проверку подальше

или добавить в событиях столкновений со стеной
xprevious и yprevious(на всякий)

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 05-10-2006 22:08
xprevious и yprevious(на всякий)

Ты имеешь ввиду:
x=xprevious; y=yprevious;
?

частый гость
Группа: Участники
Сообщений: 24
Добавлено: 05-10-2006 22:33
2Nka
IT ALIVE!!
Твой код в сочетании с кодом K1mik (про гравитацию) у меня работает зашибись.
Теперь когда трабла с колизиями решена можно думать над сценарием, ИИ...вообщем самым приятным.


Тут могла быть ваша реклама
Группа: Сообщество GM
Сообщений: 1014
Добавлено: 05-10-2006 22:48
K1mik

Сам ты Проход!
а что за код?

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 06-10-2006 11:13
xprevious и yprevious(на всякий)

Ты имеешь ввиду:
x=xprevious; y=yprevious;
?

Ну конечно

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Объясните застревания

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU