Название: Объект застревает на гладкой поверхности из нескольких объектов Отправлено: NНN от Июль 22, 2024, 22:16:07 У меня есть гладкая платформа из множества квадратных блоков и человечек, движущийся по ней, включена встроенная физика
код человечка: create: Код: phy_fixed_rotation = true; step:Код: if(keyboard_check(ord("A"))){ phy_speed_x = max(-4, phy_speed_x-1) } if(keyboard_check(ord("D"))){ phy_speed_x = min(4, phy_speed_x+1) } Физические параметры человечка: Код: density: 0.5 Физические параметры блока платформы:restitution: 0 collision group: 1 linear damping: 0 angular damping: 100 friction: 1 Код: density: 0 restitution: 0 collision group: 1 linear damping: 0 angular damping: 0 friction: 6 Когда человечек движется по платформе, он иногда самопроизвольно останавливается и не может идти дальше в ту сторону. Если отойти назад, и пойти вперёд снова, он проходит то место, где останавливался Я использую GM Studio 2 Название: Re: Объект застревает на гладкой поверхности из нескольких объектов Отправлено: SPLURGEOLA от Июль 24, 2024, 11:03:17 У меня есть гладкая платформа из множества квадратных блоков и человечек, движущийся по ней, включена встроенная физика код человечка: create: Код: phy_fixed_rotation = true; step:Код: if(keyboard_check(ord("A"))){ phy_speed_x = max(-4, phy_speed_x-1) } if(keyboard_check(ord("D"))){ phy_speed_x = min(4, phy_speed_x+1) } Когда человечек движется по платформе, он иногда самопроизвольно останавливается, и не может идти дальше в ту сторону. Если отойти назад, и пойти вперёд снова, он проходит то место, где останавливался Цитировать Для исправления этой проблемы вы можете попробовать увеличить значение максимальной скорости, добавив большее число в функцию max и min. Например: phy_speed_x = max(-8, phy_speed_x-2) phy_speed_x = min(8, phy_speed_x+2) Это поможет человечку преодолевать возможные препятствия на своем пути без остановок. Также рекомендуется проверить возможные причины остановки, такие как столкновения с другими объектами или наличие других физических эффектов, которые могут влиять на движение персонажа. Название: Re: Объект застревает на гладкой поверхности из нескольких объектов Отправлено: NНN от Июль 25, 2024, 07:19:36 Цитировать Для исправления этой проблемы вы можете попробовать увеличить значение максимальной скорости, добавив большее число в функцию max и min. Например: phy_speed_x = max(-8, phy_speed_x-2) phy_speed_x = min(8, phy_speed_x+2) Это поможет человечку преодолевать возможные препятствия на своем пути без остановок. Также рекомендуется проверить возможные причины остановки, такие как столкновения с другими объектами или наличие других физических эффектов, которые могут влиять на движение персонажа. Увеличение скорости не помогает. Платформа абсолютно гладкая, нет никаких препятствий. Я заметил, что остановки происходят тогда, когда край человечка совпадает с краями блоков, из которых состоит платформа. Название: Re: Объект застревает на гладкой поверхности из нескольких объектов Отправлено: MusNik от Август 09, 2024, 20:07:14 Платформа буквально не гладкая, раз состоит из нескольких блоков.
Это классическая проблема Box2D, смотрите гайды, например: https://www.iforce2d.net/b2dtut/ghost-vertices |