|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Объясните застревания |
Страницы: 1 |
Автор | Сообщение |
Пароход частый гость Группа: Участники Сообщений: 24 |
Добавлено: 05-10-2006 01:01 |
Блин все никак невъеду в чем прирчина застревания объектов. Где найти ответ | |
zubila магистр Группа: Сообщество GM Сообщений: 314 |
Добавлено: 05-10-2006 01:10 |
Каких застряваний? Поточнее | |
zubila магистр Группа: Сообщество GM Сообщений: 314 |
Добавлено: 05-10-2006 01:15 |
Ну вобще бывают несколько факторов. 1 При колизии (столкновении) со стеной нужно ставить скорость равную 0 (если платформенная игра hspeed=0) 2 Бывают застрявания при виде сверху сам с эти сталкивался иза спрайта. Например нажал вниз перс подошел к стенке и остановился нажимаешь вверх он начинает кряхтеть пыптаясь выйти из стенки. Просто спрайт и вниз и вверх отличались размером хотьба вверх была больше и поэтому залазила в стенку. Может ииза не точночти центровки спрайта. |
|
Пароход частый гость Группа: Участники Сообщений: 24 |
Добавлено: 05-10-2006 01:26 |
Так у меня в платформах тоже спрайты бывают разные. Но больше всего мне ненравиться когда объект сталкивается в воздухе со стенкой и при нажатии кнопки движения в направлении стены не падает, а падает после отпускания всех кнопок. | |
zubila магистр Группа: Сообщество GM Сообщений: 314 |
Добавлено: 05-10-2006 02:56 |
У мнея така ятрабла с моим соником но там у меня не правльный подход был сначала. Чтоб исправить надо все переделывать. Оставлю как есть первый проект можно из глюками. А на дальше буду знать. |
|
DreamRunner магистр Группа: Сообщество GM Сообщений: 320 |
Добавлено: 05-10-2006 05:16 |
проверяй сначала столкновение в положении (x+hspeed,y) Если там стена, то делай move...solid() и hspeed=0 - короче прибиваешь объект ближе к стене. А потом уже проверяешь по (x,y+vspeed) на наличие пола или потолка. Во всяком случае я делал так, когда использовал маски. |
|
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 05-10-2006 14:14 |
Вобще лучше обходится без скоростей,лучше через x и y | |
Nka Володька Группа: Сообщество GM Сообщений: 1648 |
Добавлено: 05-10-2006 14:32 |
Согласен! не проще ли написать в событии клавиши "направо" код: if place_free(x+4,y) {x+=4} А влево: if place_free(x-4,y) {x-=4} У меня раньше в игре платформенной было со скоростями и все застревало. Потом исправил на вышеуказанный код и все заработало |
|
Nka Володька Группа: Сообщество GM Сообщений: 1648 |
Добавлено: 05-10-2006 14:38 |
И еще: при коллизии со стенкой сделай move_contact_solid(270,12) Только в таком случае исправь код с управлением такой, ка я сказал - иначе при столкновении со стеной(даже слева или справа) герой будет с бешеной скоростью лететь вниз, а этот код:
Исключает коллизию со стеной |
|
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 05-10-2006 16:22 |
А если тебе наплевать на играбельность своей игры то: if place_free(x-10,y) {x-=4} можеш поставить проверку подальше или добавить в событиях столкновений со стеной xprevious и yprevious(на всякий) |
|
Nka Володька Группа: Сообщество GM Сообщений: 1648 |
Добавлено: 05-10-2006 22:08 |
Ты имеешь ввиду: x=xprevious; y=yprevious; ? |
|
Пароход частый гость Группа: Участники Сообщений: 24 |
Добавлено: 05-10-2006 22:33 |
2Nka IT ALIVE!! Твой код в сочетании с кодом K1mik (про гравитацию) у меня работает зашибись. Теперь когда трабла с колизиями решена можно думать над сценарием, ИИ...вообщем самым приятным. |
|
Ka1miK Тут могла быть ваша реклама Группа: Сообщество GM Сообщений: 1014 |
Добавлено: 05-10-2006 22:48 |
Сам ты Проход! а что за код? |
|
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 06-10-2006 11:13 |
Ну конечно |
Страницы: 1 |
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Объясните застревания |