Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: chicagoserie en Agosto 19, 2018, 01:18:16 PM

Título: Crear objetos aleatorios Flappy Plane (No solucionado)
Publicado por: chicagoserie en Agosto 19, 2018, 01:18:16 PM
Buenas,
Me presento como chicagoserie, estoy iniciándome en Gamemaker y de hecho estoy siguiendo un tutorial para reproducir un juego tipo Flappy Plane.
Mi duda me asalta, que al parecer en versiones anteriores de Gamemaker, el código que os pongo era funcional. Este código generaba rocas, manteniendo entres sus bases 672 pixels, y eligiendo las posiciones aleatorias PY.
Parece ser que la función instance_create  fue sustituida por instance_create_layer o instance_create_depth, auqnue con estas no soy capaz de hacerlo.


/// @description  Generar rocas

dy = 672; // distancia entre las dos rocas

py = choose(-164,-128,-96,-64,-32,0);

instance_create(x+50,y+0,obj_Roca_Superior);
instance_create(room_width+50,py+dy,obj_Roca_Inferior);

alarm[0] = room_speed; // Generador ON



Si alguien me lo puede aclarar agradecido.
Título: Re:Crear objetos aleatorios Flappy Plane (No solucionado)
Publicado por: BssString en Agosto 19, 2018, 04:53:38 PM
Hola chicagoserie

Efectivamente, GMS2 cambió la forma en la que se crean los objetos para adaptarlos a su nuevo layer system.
Puedes cambiar el instance_create por instance_create_depth.
Mantienes los mismos argumentos de la función, pero añades la depth (puede ser cualquier valor entre -16000 y 16000. Te recomiendo usar 0)

Por ejemplo:
/// @description  Generar rocas

dy = 672; // distancia entre las dos rocas

py = choose(-164,-128,-96,-64,-32,0);

instance_create_depth(x+50,y+0,0,obj_Roca_Superior);
instance_create_depth(room_width+50,py+dy,0,obj_Roca_Inferior);

alarm[0] = room_speed; // Generador ON


Saludos
Título: Re:Crear objetos aleatorios Flappy Plane (No solucionado)
Publicado por: chicagoserie en Agosto 21, 2018, 10:55:21 AM
Hola BSS String,

Gracias por tu ayuda.
He probado el codigo y parece que hay que afinar algo, porque no me sale ninguna roca generada.....pero cuando empieza el juego de repente aparece una que colisiona con el objeto jugador.
Adjunto imagen.

https://drive.google.com/file/d/1kRixcsrHdM8dv8hPDHtxNIFRYlVMbqtj/view?usp=sharing

Saludos.
Título: Re:Crear objetos aleatorios Flappy Plane (No solucionado)
Publicado por: BssString en Agosto 21, 2018, 02:33:32 PM
Hola chicagoserie

El error aquí puede ser cualquier cosa.
Empezando por el evento de creación de objetos, que creas las dos rocas en distinta posición horizontal...
instance_create_depth(x+50,y+0,0,obj_Roca_Superior);
instance_create_depth(room_width+50,py+dy,0,obj_Roca_Inferior);
Tienes que usar o una o la otra, pero debe ser la misma en ambas para que se vean al mismo tiempo.

Lo otro que puede ser el problema, es que la roca inferior se esté dibujando por debajo de la pantalla, puedes corregirlo cambiando el "origen en y" de las propiedades del sprite o ajustando su coordenada y cuando la generas.

Saludos