y_spd += global.g * global.time_scale; if place_meeting(x, y + y_spd, oParentSolid) { while !place_meeting(x, y + sign(y_spd), oParentSolid) //BUG HERE!! y += sign(y_spd); if y_spd > 2 { y_spd *= -restitution; x_spd *= restitution; } // 落地反弹 else { y_spd = 0; x_spd = 0; } } y += y_spd * global.time_scale; if place_meeting(x + x_spd, y, oParentSolid) x_spd *= -restitution; // 撞墙反弹 x += x_spd * global.time_scale; pickup_timer--; image_angle += 4 * point_distance(0, 0, x_spd, y_spd) * global.time_scale; if flash_timer > flash_duration { oUI.credit_pickup_timer = 120; oUI.credit_pickup++; global.save_data.player.Credit++; instance_destroy(); }