Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Naitsabes0 en Abril 29, 2017, 11:59:43 PM

Título: Tengo un problema con este "power up" (SOLUCIONADO)
Publicado por: Naitsabes0 en Abril 29, 2017, 11:59:43 PM
Este power up se ve así en el juego:

(https://i.gyazo.com/92d0fd809e87b7d3871fcd3445beb5e5.gif)

Como pueden ver sale la bola al momento de tomar el power up, pero mi problema es que solo 1 de 4 gira al rededor del personaje  :-\, una en cada 90° grados y solo se mueve la derecha.

Este es el código.

obj_Bola_orbital

CREATE:
///Variables
radio_bola = 80;
angulo_bola = 0;

STEP:
x = objJugador.x + cos(degtorad(angulo_bola)) * radio_bola;
y = objJugador.y - sin(degtorad(angulo_bola)) * radio_bola;
angulo_bola = angulo_bola + 4;

obj_Poder_Bola_Orbital

COLISION JUGADOR:

instance_create(objJugador.x+90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x-90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y+90,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y-90,obj_Bola_Orbital);
instance_destroy();

Bueno también pueden usarlo para sus juegos, ademas si queda solucionado lo dejare para que alguien lo estudie  :), saludos.
Título: Re:Tengo un problema con este "power up"
Publicado por: knd144 en Abril 30, 2017, 12:43:48 AM
Sí se generan 4, pero quién sabe dónde   XD

El problema es que estás poniendo como coordenadas (x o y) la variable "objJugador" que lo que hace es tomar el valor del id de la primera instancia del jugador. Debes hacer referencia a objJugador.x y objJugador.y; así:



instance_create(objJugador.x+90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x-90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y+90,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y-90,obj_Bola_Orbital);
instance_destroy();

Título: Re:Tengo un problema con este "power up"
Publicado por: Naitsabes0 en Abril 30, 2017, 02:42:30 AM
Cita de: knd144 en Abril 30, 2017, 12:43:48 AM
Sí se generan 4, pero quién sabe dónde   XD

El problema es que estás poniendo como coordenadas (x o y) la variable "objJugador" que lo que hace es tomar el valor del id de la primera instancia del jugador. Debes hacer referencia a objJugador.x y objJugador.y; así:



instance_create(objJugador.x+90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x-90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y+90,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y-90,obj_Bola_Orbital);
instance_destroy();

Hola, bueno su código no esta mal, almenos se logra apreciar que las otras 3 bolas si aparecen, aunque sea por unas décimas de segundos  ???, pero es un avance  :), por cierto modifique el código que esta arriba por si quiere ver como queda.

(https://i.gyazo.com/92d0fd809e87b7d3871fcd3445beb5e5.gif)
Título: Re:Tengo un problema con este "power up"
Publicado por: 3dgeminis en Abril 30, 2017, 03:34:02 AM
Intenta de esta forma:
[gml]
///COLISION JUGADOR

for(i=0; i<4; i++)
    {
     id_bola=instance_create(objJugador.x, objJugador.y, obj_Bola_Orbital)
     with(id_bola) {angulo_bola=90*other.i}
    }

instance_destroy()
[/gml]
Título: Re:Tengo un problema con este "power up"
Publicado por: Naitsabes0 en Abril 30, 2017, 04:52:35 AM
Cita de: 3dgeminis en Abril 30, 2017, 03:34:02 AM
Intenta de esta forma:
[gml]
///COLISION JUGADOR

for(i=0; i<4; i++)
    {
     id_bola=instance_create(objJugador.x, objJugador.y, obj_Bola_Orbital)
     with(id_bola) {angulo_bola=90*other.i}
    }

instance_destroy()
[/gml]
Tu codigo fue...

(https://i.gyazo.com/12ca294faa0b14829baf4341542eb10b.gif)

¡Excelente!