![]() |
| [ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
| 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 Форум / Вопросы и Ответы (Для Начинающих) / Объясните застревания |