Я заметил, что размеры формы приспособления должным образом увеличиваются, когда спрайт становится выше. И наоборот, размеры формы приспособления привязывались к исходным размерам спрайта при попытке уменьшить масштаб спрайта.
Большое спасибо за ваши подсказки, помощь, поддержку. Чтобы показать этот сбой, ниже приведены фрагменты GML:
В обработчике события Create:
// which controller
controllerID = 0;
// Configure the fixture
fix = physics_fixture_create();
physics_fixture_set_circle_shape(fix, sprite_width / 2);
physics_fixture_set_density(fix, .01);
physics_fixture_set_restitution(fix, 1.);
physics_fixture_set_friction(fix, 0.5);
//Bind the fixture to the current instance
//my_fix = physics_fixture_bind(fix, object_index);
my_fix = physics_fixture_bind(fix, id);
В обработчике события шага «Начало»:
var aButton = gamepad_button_check_pressed(controllerID, gp_face1 );
if ( aButton != 0)
{
image_xscale = image_xscale*.9;
image_yscale = image_xscale;
physics_remove_fixture(id, my_fix);
// Configure the fixture
physics_fixture_set_circle_shape(fix, sprite_width / 2);
//Bind the fixture to the current instance
my_fix = physics_fixture_bind(fix, id);
}
var bButton = gamepad_button_check_pressed(controllerID, gp_face2 );
if ( bButton != 0)
{
image_xscale = image_xscale*1.1;
image_yscale = image_xscale;
physics_remove_fixture(id, my_fix);
// Configure the fixture
physics_fixture_set_circle_shape(fix, sprite_width / 2);
//Bind the fixture to the current instance
my_fix = physics_fixture_bind(fix, id);
}
Легко проверить, что размеры формы приспособления не соответствуют размерам спрайта, когда спрайт сжимается: просто поместите physics_world_draw_debug ( phy_debug_render_shapes ) в обработчик события рисования. Мы можем видеть, что размеры формы приспособления растут с расширением спрайта, но остаются постоянными, когда размеры спрайта возвращаются к исходным размерам спрайта.
Это действительно похоже на ошибку в физическом движке...
Спасибо за ваши комментарии.
Ваше здоровье
Сильвен