Столкновение между физическим объектом и нефизическим объектом в игровой комнате физики 2

У меня проблемы со столкновением в игре.

У меня есть кабинет физики и какой-то предмет. У меня есть два объекта, где uses physics активен. Я заставляю их столкнуться. и это еще нормально.

Но когда я пытаюсь добавить какой-либо объект без uses physics в физику моей комнаты, два предыдущих объекта не могут снова столкнуться.

Если я удалю объект без uses physics, два предыдущих объекта могут снова столкнуться.

Как решить 2 объекта с uses physics раньше. чтобы иметь возможность сталкиваться, как и раньше, даже если я добавляю объекты без физики в свою комнату физики.

Я извиняюсь за мой плохой английский.


person Leonardo Last    schedule 07.07.2018    source источник


Ответы (1)


Я не думаю, что можно обнаружить столкновение между физическим объектом и нефизическим объектом. Однако вы можете симулировать физический объект, чтобы он вел себя как нефизический объект.

Включите use physics для нефизического объекта, но манипулируйте им, используя нефизические свойства (например, скорость, гравитация и т. д.). Сделайте его датчиком, чтобы он вызывал столкновение, не вызывая отскока другого объекта. В событии Step/End Step объекта добавьте следующий код GML, который будет обновлять физические свойства объекта на основе любых изменений нефизических свойств:

phy_fixed_rotation = true;
vspeed += gravity;
vspeed -= sign( vspeed ) * min( abs( vspeed ), friction );
hspeed -= sign( hspeed ) * min( abs( hspeed ), friction );
phy_speed_x = hspeed;
phy_speed_y = vspeed;
phy_position_x = x;
phy_position_y = y;
phy_rotation = -image_angle;

Теперь вы должны иметь возможность перемещать объект, используя нефизические свойства, и, следовательно, столкновения должны обнаруживаться.

person KhanageRush    schedule 27.09.2018