Frima
Искусственный Интеллект
(126539)
1 месяц назад
Могу ошибаться, но скорей всего в математике проблема. Когда вычитается позиция, получается отрицательное значение. А это не ноль. Поэтому считается как true
Иван Леханов Ученик (95)
1 месяц назад
Вроде нет, учитывая то, что в GODOT в координате "y" чем выше - тем ниже значение, то есть прыжок будет отрицательным числом, к тому же противник ведет себя нормально, если игрок будет под ним.
Но все равно спасибо
(либо я не понял текст?♂️)
Dlazder
Мудрец
(16877)
1 месяц назад
Думаю координата У в этом движке отсчитывается от верха, так что условие вроде правильное. Логируй координаты игрока и врага, и посмотри в чем дело. Раз прыгает, значит условие действительно выполняется, может ты не учел высоту персонажей, положение хитбокса или чего то еще...
Иван Леханов Ученик (95)
1 месяц назад
Да, тоже об этом думаю из-за того, что у моба - круглая коллизия, а у игрока - капсула, которая повыше, проблема в том, что я не знаю, как отсчитывается координата, с нижней точки или с центра.
Но суть я понял и у меня даже появилась идея, как это исправить, но пока я это писал - я уже забыл(
Иван Леханов Ученик (95)
1 месяц назад
Да, в этом и была проблема, я добавил ...self.position - 10:... и все заработало, спасибо
(просьба прочитать примечание внизу)
Я делаю 2D-платформер, но противник прыгает все время, если игрок на одной и той же координате y что и игрок, а должен это делать только при условии, что игрок выше противника. Что не так?
Код полностью: Примечание:
На всякий случай скажу, что коллизия игрока - это капсула
а коллизия врага - круг (Если это важно)