You simply create the object that will be the fireball, and draw a "shadow" exactly in the position it was created (will be where you want the ball to land at the end), and the falling fireball will be a motion simulation, where the Y axis increases until it "falls" in the shadow thus destroying the object.
Example:
You draw the shadow exactly in the position it was created:
Create the fireball
GML:
instance_create_layer(50, 50, "layer_name", obj_fireball);
Inside obj_fireball:
GML:
// CREATE EVENT
fireball_y = 300; // < change this to "view height"
// STEP EVENT
fireball_y -= 3;
if (fireball_y <= 0) {
instance_destroy()
}
// DRAW EVENT
// fireball
draw_sprite(spr_fireball, 0, x, y-fireball_y);
// shadow
draw_sprite(spr_fireball_shadow, 0, x, y);
You can also scale the shadow to make it look more beautiful and realistic.