Game Maker - создание игр | HellRoom Games
Май 21, 2025, 02:29:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Лестница  (Прочитано 4412 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stonks
Новичок
*

Репутация: 0
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 5



« : Ноябрь 05, 2019, 12:42:16 »

Привет всем.
Столкнулся с такой проблемой:
Написал код для подъема по вертикальной лестнице:
В настройках комнаты гравитация стоит на 40 по Y, при нажатии кнопки вверх игрок просто взлетает на верх и сразу падает. Как сделать так чтобы игрок мог оставаться на лестнице, а не падать?
Заранее оговорюсь (просмотрел много тем/много чего испробовал - все равно не работает...)
« Последнее редактирование: Ноябрь 05, 2019, 13:09:04 от Stonks » Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #1 : Ноябрь 05, 2019, 12:55:18 »

я у тебя уже вижу ошибку
phy_position_y это Y персонажа?
у тебя идет проверка лестницы на +3 от phy_position_x а персонаж движется только по phy_position_y
наверно я туплю и за того что я не знаю про функцию phy_position
а да зачем тебе такая большая гравитация в противных случаях игрок может просто вылетит за блоки и ты поставил gravity_direction //270 это вниз и 270 ставится по умолчанию
Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
Stonks
Новичок
*

Репутация: 0
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 5



« Ответ #2 : Ноябрь 05, 2019, 13:05:46 »

я у тебя уже вижу ошибку
phy_position_y это Y персонажа?
у тебя идет проверка лестницы на +3 от phy_position_x а персонаж движется только по phy_position_y
наверно я туплю и за того что я не знаю про функцию phy_position
а да зачем тебе такая большая гравитация в противных случаях игрок может просто вылетит за блоки и ты поставил gravity_direction //270 это вниз и 270 ставится по умолчанию
phy_position_y это Y персонажа? - да
поставил +3 по х - для того чтобы рядом можно было взбираться
phy_position_y -= 3 - грубо говоря передвинуть персонажа по оси у на 3 вверх
Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #3 : Ноябрь 05, 2019, 13:09:59 »

Цитировать
phy_position_y -= 3 - грубо говоря передвинуть персонажа по оси у на 3 вверх
а зачем проверять x+3 если тебе надо наверх забраться
и еще зачем внизу проверяешь лестницу если тебе наверх надо?
Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
Stonks
Новичок
*

Репутация: 0
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 5



« Ответ #4 : Ноябрь 05, 2019, 13:12:17 »

Цитировать
phy_position_y -= 3 - грубо говоря передвинуть персонажа по оси у на 3 вверх
а зачем проверять x+3 если тебе надо наверх забраться
и еще зачем внизу проверяешь лестницу если тебе наверх надо?
знаешь код, напиши...
а не спрашивай о моих ошибках
Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #5 : Ноябрь 05, 2019, 13:21:46 »

 Мда....
и то что бы перс мог стоять на лестнице надо сделать проверку а то у тебя gravity активировано бесконечно вот поэтому твой gravity=0; не будет работать и сразу не делай игру лучше поизучай код если некоторые структуры кода непонятно то протестируй сделал для себе примерчик или поизучай справку

Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
Stonks
Новичок
*

Репутация: 0
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 5



« Ответ #6 : Ноябрь 05, 2019, 13:43:20 »

ты написал тоже самое что и я в начале... перс не будет стоять на лестнице если гравитация нулевая только при нажатии *вверх* тк при нажатии вверх он будет ползти, поэтому я гравитацию поставил после проверки на соприкосновение с лестницей.

Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #7 : Ноябрь 05, 2019, 15:07:58 »

а можешь весь код скинуть ?
Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
Stonks
Новичок
*

Репутация: 0
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 5



« Ответ #8 : Ноябрь 05, 2019, 15:31:43 »

а можешь весь код скинуть ?
obj_player
Это у меня в Create
Это у меня в Step
в Room Settings

Проблема все та же, он лезет по лестнице (больше похоже на запрыгивает), как только отпускаю клавишу вверх (W) он падает - Значит гравитация работает...

Добавлено: Ноябрь 05, 2019, 16:43:14
Ответ найден, проблема была в gravity, нужно было использовать другую функцию. Спасибо
« Последнее редактирование: Ноябрь 05, 2019, 16:43:14 от Stonks » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.138 секунд. Запросов: 29.