Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Balprion en Mayo 30, 2014, 12:38:30 PM

Título: enemigos móviles
Publicado por: Balprion en Mayo 30, 2014, 12:38:30 PM
Buenas! soy más o menos nuevo en gm8 y mi problema es que no se hacer el movimiento del enemigo final, quiero hacer un movimiento aleatorio y que a la vez vaya disparando un láser, tengo todos los sprites y objetos hechos, del enemigo de cara y en todas direcciones, decir que es un juego en 2D del estilo Space Impact solo que de abajo a arriba, mi duda es:
¿Como hacer para que cambie de sprite en cada dirección siendo así cada dirección aleatoria?
Es más que nada porque si le pongo una Path el enemigo siempre la hará ya del reverso o como sea y el jugador adivinaría su dirección haciendo el juego demasiado fácil.
Otra duda sería como configurar en gm8 pro la opcion para hacerlo en plataforma android, pero lo pondré en otro tema. Mersi señores
Título: Re:enemigos móviles
Publicado por: 3dgeminis en Mayo 30, 2014, 11:52:24 PM
Una idea:
CREATE
speed=2
direction=floor(random(360))
alarm[0]=60
ALARM[0]
direction=floor(random(360))
alarm[0]=60
Título: Re:enemigos móviles
Publicado por: Balprion en Junio 01, 2014, 01:45:40 PM
Gracias geminis! me ha ayudado bastante, aunque al final usaré otro metodo sin tocar el codigo.
Título: Re:enemigos móviles
Publicado por: elviskelley en Junio 01, 2014, 04:05:04 PM
Lo primero que hice fue ir a youtube a ver de que juego hablabas.
la direcction aleatorio es muy facil al igual que el cambio de sprite, la cosa es que no se como se mueve asiq ue te dare varios codiogos y los explicares para que asi tu armes tu script para la Ia de las naves segun tu necesidad.
if ceil(random(300))=true
{acciones}
//Con este codigo puedes hacer que cada cierto tiempo aleatorio se ejecuten las acciones que coloques. (va en el event step)

sprite_index=(nuevo sprite); te permite cambiar de sprite puedes usar comparaciones con los bordes del room para saber a la direccion que se mueve incluso comparaciones con la hspeed asi puedes deterninar el sprite al cual cambiar ejemplo:
if (x > 0 and hspeed>0) {sprite_index=(sprite de derecha);}
//compara si va a la derecha
if (x < room_width and hspeed<0) {sprite_index=(sprite de la izquierda)}
//compara si e mueve a la izquierda

para escoger la direccion de forma aleatoria puedes usar esto.
hspeed=(choose(3,-3)); osea escogera entre moverse 3 es hacia la derecha y -3 hacia la izquierda.

Ahora basta con que unas estos codigos y crees tu script.
Título: Re:enemigos móviles
Publicado por: Balprion en Junio 03, 2014, 02:50:43 PM
gracias elviskelley, pero intento no tocar mucho el código e intentar hacerlo por eventos y acciones. ;D