Cita de: Clamud en Agosto 16, 2017, 07:08:07 PM
Esto podría servir
[gml]
g = 0.1; //gravity acceleration
gdir = point_direction( x,y, obj_moon.x, obj_moon.y ); //gravity direction
if( distance <= 123 ) //tocando la luna (123 radio de la luna)
{
if keyboard_check_pressed( tecla_para_saltar )
vr = -12; //velocidad radial
}
x += lengthdir_x( vr, gdir ); //movimiento radial
y += lengthdir_y( vr, gdir );
//movimiento horizontal
// ...
vr += g; //efecto de la gravidad
distance = point_distance( x,y, obj_moon.x, obj_moon.y );
if( distance < 123 ){ //personaje atraviesa la superficie
//acciones para que deje de atravesar la superficie
}
[/gml]
¿Porqué usas la variable image_angle del objeto obj_moon?
Funciono excelente.
En realidad no use la variable image_angle, pero no recordaba del todo como era el codigo y no tenia la pc de desarrollo a mano.
Código [Seleccionar]
image_angle -= 1.5;
orbit_angle += orbit_speed;
x = obj_moon.x + orbit_radius * sin(orbit_angle * pi / 360);
y = obj_moon.y - orbit_radius * cos(orbit_angle * pi / 360);
Muchas gracias.