Bienvenidos sean a este post, hasta el post anterior hemos creado a nuestro heroe, los limites para el y un laberinto pero hoy nos centraremos en sus rivales o enemigos.
Al igual que como hicimos con el jugador debemos primero generar un sprite y luego el objeto, como antes vamos al Asset Browser, buscamos la carpeta Sprites, hacemos click con el boton y seleccionamos Create -> Sprite, una vez hecho le asignaremos el nombre spr_Enemigo, modificamos el tamaño a:
- Width: 32
- Height: 64
- Destilden la opcion de Maintain Aspect Ratio
Por ultimo recuerden setear a fps en 0, con todo esto realizado podemos pasar a la opcion Edit Image, al igual como hicimos como el jugador vamos a crear un sprite para cada posicion es decir que vamos a agregar tres subimages y hacerlo de frente, detras, mirando a la izquierda y otro a la derecha, les dejo una opcion de lo que pueden crear

Lo siguiente sera crear dos objetos, uno para el movimiento horizontal y otro para el movimiento vertical, como hasta ahora van al Asseet Brower, buscan la carpeta Objects, hacen click con el boton derecho sobre esta y seleccionan Create -> Object, les aparecera un nuevo cuadro al cual le asignaremos el nombre de obj_EnemVert, el cual sera para el movimiento vertical, nuestro siguiente paso sera agregar el sprite correspondiente, por ahora no se preocupen por los frames ya lo veremos a continuacion, y por ultimo debemos setearlo como solido para el tema de las colisiones, debemos volver a repetir el mismo procedimiento pero a este nuevo objeto lo llamaremos obj_EnemHor, con esto ya concluimos la creacion de nuestros nuevos objetos, pasemos al siguiente paso.
Este paso es el mas complejo pero el mas satisfactorio porque crearemos el movimiento para estos nuevos objetos, vamos a trabajar sobre el objeto obj_EnemHor, abrimos este objeto y agregamos un evento por medio de Add Event, este sera Create, en este nuevo evento arrastraremos las acciones que seran las iniciales para nuestro objeto, entre ellas seran:
- Set Sprite, con el sprite del objeto y el frame 3
- Set Speed, con la direccion en Horizontal y el valor de Speed en 2
- Set Direction Variable, estableceremos la direccion 0, es decir a la derecha
Estas son las tres acciones basicas de nuestro evento Create, el siguiente paso sera agregar el evento para las colisiones, en este caso usamos a Add Event nuevamente y seleccionamos Collisions -> Objects -> obj_Prd, con esto creamos el evento de colision con la pared, el siguiente paso sera agregar las acciones, la primera que arrastraremos es «If Object At Place» dentro de las acciones de Colisiones, una vez arrastrado en el panel central lo siguiente quedando la siguiente ventana

Obviamente estara todo vacio pero nosotros agregaremos al objeto de Pared (obj_Prd) y en X seteamos a hspeed y tildamos la opcion Relative, esto nos permitira en base al valor de hspeed y su desplazamiento horizontal, quedara como se ve en la imagen, el siguiente paso es arrastrar a la derecha de esta ventana la accion Reverse que se encuentra en las acciones de Movement, les debe quedar de la siguiente forma

Esto simboliza que si es verdad la condicion anterior, es decir que este objeto esta en colision con la pared procede a ejecutar la accion Reverse, esta sera para invertir el valor de la direccion, es decir si esta yendo a la derecha cambiara la direccion a la izquierda y viceversa, tambien aplica para las direcciones verticales, basicamente lo que hace agregar 180° al valor actual, y en caso de pasarse de los 360° empieza desde 0°, con lo cual cuando estemos en 270°, por ejemplo, lo convertira en 90°, esto podemos hacerlo tanto en las direcciones como en horizontal, en vertical o con la gravedad, para nuestro caso estableceremos Horizontal para que afecte unicamente este movimiento, el siguiente paso sera agregar un condicional para cambiar el sprite de acuerdo a donde se desplaza, para ello agregaremos la accion condicional (If variable) que esta en las acciones Common, esta si debemos arrastrarla debajo de la accion anterior y quedara de la siguiente manera

Lo unico que debemos modificar es la opcion que dice Variable donde pasaremos el valor de direction, esta es una variable interna del GameEngine donde justamente guarda el valor de la direccion que seleccionamos, el resto lo dejamos como esta porque de esta forma detecta si va a la derecha, el siguiente paso sera agregar la accion Set Sprite de la acciones Instances y para ello lo volvemos a arrastrar pero a al derecha de esta ventana para quede dentro de su bloque, nos debe quedar de la siguiente manera

En este caso seleccionaremos nuevamente nuestro Sprite del enemigo y como Frame le pasaremos el valor de 3, porque es el frame encargado de mirar a la derecha, esto si lo hicieron parecido al mio de lo contrario ira el valor que corresponda a mirar a la derecha, el siguiente paso sera agregar la accion else que esta dentro las acciones de Common y este si debemos arrastrarlo debajo del if no de la accion Set Sprite, debe quedar de la siguiente manera

Una breve explicacion de algo que veremos mas adelante mucho mas profundamente, el condicional if se usa para verificar que una condicion sea verdadera o no y en caso de ser verdadera se ejecuta pero en caso de ser falsa es capturada por else y ejecuta otro bloque de acciones, en este caso si la direccion es a la derecha, o sea 0°, setea el frame 3 del sprite pero en caso de no ser asi, es decir que es de 180° recuerden que solo vemos el eje horizontal, ejecutara la accion que le pasemos a else, en este caso agregamos otro Set Sprite y como en el caso anterior debemos arrastrarlo a la derecha de la ventana Else, quedando de la siguiente forma

Es lo mismo que en el otro bloque pero esta vez seteara el frame 2, el cual es cuando el enemigo mira a la izquierda si respetaron los mismos frames que yo hice de lo contrario ira el valor del frame correspondiente a la izquierda y con esto ya hicimos toda la configuracion para que nuestro enemigo se desplace de izquierda a derecha y viceversa, en el siguiente video voy a mostrar todo el procedimiento pero para hacer el desplazamiento de arriba hacia abajo y viceversa
En el video se puede ver como se agregan los bloques para que sean tomados por el condicional, se ve bastante engorroso pero cuando pasemos al lenguaje se van a dar cuenta que es mucho mas intuitivo y facil y para el que sabe algo de programacion le parecera lo mismo, pero con esto ya tenemos hecho el desplazamiento y su correspondiente vuelta, vamos a ubicar a nuestros enemigos en el laberinto, para ello es bien simple solamente debemos arrastrar los enemigos del Asset Browser al Room y listo, veamos el siguiente video
Ya podemos ver algo mas parecido a un video juego aunque todavia nos falta bastante, pero si lograron algo similar a lo visto en pantalla vamos por el buen camino, no se preocupen no falta mucho para poner las cosas interesantes.
En resumen, hoy hemos creado a nuestros enemigos, hemos visto como generar un movimiento horizontal o vertical, hemos visto como hacerlo reaccionar ante un obstaculo y hemos logrado tenerlo en el mismo mapa que nuestro heroe, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.
Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.


Donación
Es para mantenimento del sitio, gracias!
$1.00
