Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: godafesto en Diciembre 26, 2011, 09:49:30 PM

Título: Como hago que dispra de esta manera?
Publicado por: godafesto en Diciembre 26, 2011, 09:49:30 PM
Hola. Estoy haciendo un shooters de naves. Tengo que hacer los disparos. Pero tienen que ser de una forma particular.
Aca les dejo un juego de Nintendo para que vean que es lo que quiero, no pesan nada.

http://www.romnation.net/srv/emulators/39/nes/Nestopia-v1-08-for-Windows.html (emulador)

http://www.romnation.net/srv/roms/30559/nes/Gradius-2-J.html (rom del juego)

Fijense que si dejan apretado el boton de disparo (con la "," dispara), si el disparo impacta sobre algo vuelve a salir inmediatamente. Entonces si nos acercamos a algo disparando cada vez van a salir mas rapidos los diaprados ya que cada vez impactan mas rapido (ya que la distancia es menor, no se si me explico)

Yo habia hecho un engine de disparos pero con tiempo, es decir para que si dejas apretado el boton de disparo el mismo salga cada 0.2 seg por ejemplo, pero no es lo que quiero.


:GM8:
Título: Re: Como hago que dispra de esta manera?
Publicado por: MatuX en Diciembre 26, 2011, 10:01:42 PM
de los efectos no entendi muy bien quisas deberias poner algunas imagenes para ser mas precisos y no tener que descargarse el emulador y el juego, encuanto a eso de la velocidad de la bala que es mas rapido cuando esta mas serca del enemigo es facil por que crea la siguiente bala cuando se destruye el ya lanzado no se si me explico
Título: Re: Como hago que dispra de esta manera?
Publicado por: godafesto en Diciembre 26, 2011, 10:22:39 PM
Cita de: MatuX en Diciembre 26, 2011, 10:01:42 PM
de los efectos no entendi muy bien quisas deberias poner algunas imagenes para ser mas precisos y no tener que descargarse el emulador y el juego, encuanto a eso de la velocidad de la bala que es mas rapido cuando esta mas serca del enemigo es facil por que crea la siguiente bala cuando se destruye el ya lanzado no se si me explico

Claro es lo que intento hacer. Y no te puedo poner imagenes, es imposible que te explique con una foto, tenes que jugarlo, sino hubiese hecho la captura.

Título: Re: Como hago que dispra de esta manera?
Publicado por: MatuX en Diciembre 26, 2011, 10:51:38 PM
cuando venga del trabajo intentare hacerte un demo :)
Título: Re: Como hago que dispra de esta manera?
Publicado por: godafesto en Diciembre 28, 2011, 03:55:14 PM
Cita de: MatuX en Diciembre 26, 2011, 10:51:38 PM
cuando venga del trabajo intentare hacerte un demo :)

Espero el demo...
Título: Re: Como hago que dispra de esta manera?
Publicado por: MatuX en Diciembre 28, 2011, 05:28:38 PM
aca te dejo el demo perdona que sea asi nomas es que el trabajo me tiene ocupado jeje
Título: Re: Como hago que dispra de esta manera?
Publicado por: elviskelley en Diciembre 29, 2011, 09:22:30 AM
if keyboard_check(ord("L"))
{if !instance_exists(objBala)
{instance_create(x,y,objBala)}}
//si no existe la bala la crea de nuevo
Título: Re: Como hago que dispra de esta manera?
Publicado por: godafesto en Diciembre 29, 2011, 03:53:06 PM
Matux ese demo no me sirvio, la bala sigue saliendo cada el mismo periodo de tiempo aunque impacte sobre el objetivo. Igual gracias.

Cita de: elviskelley en Diciembre 29, 2011, 09:22:30 AM
if keyboard_check(ord("L"))
{if !instance_exists(objBala)
{instance_create(x,y,objBala)}}
//si no existe la bala la crea de nuevo

Voy a probar esto. Lo que no entiendo es como indico la direccion y velocidad de la bala. El codigo lo pongo en el objeto que es la nave que tengo?en donde pongo el codigo, en un evento step, create event,...?

EDIT: Lo prob? y no lo entendi. Si me podes explicar mas en detalle donde debo meter el codigo y que mas necesito hacer para que ande te lo agradeceria.
Título: Re: Como hago que dispra de esta manera?
Publicado por: elviskelley en Diciembre 29, 2011, 06:54:59 PM
en el event create de la bala
direction=... (0=derecha, 90=arriba, 180=izquierda, 270=abajo.)
speed=10;
event collision contra lo que sea
instance_destroy();
eventout side room
instance_destroy();

Esto va en el event step del que dispara.
if keyboard_check(ord("L")) //si presiona la tecla L
{if !instance_exists(objBala) //si no hay bala
{instance_create(x,y,objBala)}} //crea el objBala osea la bala.
//si no existe la bala la crea de nuevo
Título: Re: Como hago que dispra de esta manera?
Publicado por: godafesto en Diciembre 29, 2011, 08:24:14 PM
Cita de: elviskelley en Diciembre 29, 2011, 06:54:59 PM
en el event create de la bala
direction=... (0=derecha, 90=arriba, 180=izquierda, 270=abajo.)
speed=10;
event collision contra lo que sea
instance_destroy();
eventout side room
instance_destroy();

Esto va en el event step del que dispara.
if keyboard_check(ord("L")) //si presiona la tecla L
{if !instance_exists(objBala) //si no hay bala
{instance_create(x,y,objBala)}} //crea el objBala osea la bala.
//si no existe la bala la crea de nuevo

En esa linea hay un error. No se que es. Los puntos suspensivos?porque esos los borre y da error igual.
El event create en el onjeto nave o onjeto bala?
Título: Re: Como hago que dispra de esta manera?
Publicado por: elviskelley en Diciembre 29, 2011, 09:33:31 PM
Es para que solo coloque una de las opciones de movimiento
direction=... (0=derecha, 90=arriba, 180=izquierda, 270=abajo.)
osea asi. direction=0;
si quieres que sea aleatorio la direccion
colocarias direction=radom(360);
Lee mas el manual, eso es algo basico y ya deberias de saberlo.
Título: Re: Como hago que dispra de esta manera?
Publicado por: godafesto en Diciembre 29, 2011, 11:24:31 PM
Cita de: elviskelley en Diciembre 29, 2011, 09:33:31 PM
Es para que solo coloque una de las opciones de movimiento
direction=... (0=derecha, 90=arriba, 180=izquierda, 270=abajo.)
osea asi. direction=0;
si quieres que sea aleatorio la direccion
colocarias direction=radom(360);
Lee mas el manual, eso es algo basico y ya deberias de saberlo.

-Muy bien, ahora entendi puse el codigo sin mirar.

-En el evento de la bala lo cambie, borre todo y puse en "create" Start moving in a direction 0 (con el drag and drop) y tambien le puse el evento outside rom - Destroy the instance.

-Ahora me faltaria hacer el siguiente efecto. En el juego que les puse para baja si unsan el boton "auto fire" (la "k") o aprietan varias veces seguidas rapidamente el boton de disparo comun (",") la nave larga haasta 2 disparos seguidos como maximo. Como puedo lograr eso?

En el event que dispara todo perfecto.