y_spd += global.g;

if place_meeting(x, y + y_spd, oParentSolid)
{
    while !place_meeting(x, y + sign(y_spd), oParentSolid)
        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;

image_angle += point_distance(0, 0, x_spd, y_spd) * global.time_scale;

image_alpha -= 0.001;

if image_alpha <= 0
	instance_destroy();