InicioHazlo Tu MismoCurso de GML: Shooter Zombie (TDS) #1
Shooter Zombi(TDS) #1 Movimiento, vista y disparo



En ésta primera parte del curso Shoter Zombi (TDS) nos ocuparemos del movimiento del jugador, su vista dirigida hacia el mouse y el disparo. El tutorial será realizado con la versión GMS 1.4+, pero funciona con cualquier versión a partir de Game Maker Pro 8.1, no funciona en la versión lite y no ha sido probado en versiones más antiguas de Game Maker, pero puede funcionar igualmente.

Recursos Necesarios

Los pueden encontrar en mi web:

http://desarrollocreativo.weebly.com/shooter-zombitds-1-movimiento-vista-y-disparo.html

Nota:
Los nombres de los recursos son colocados entre comillas, y no es necesario utilizar los mismos siempre y cuando lo tengan en consideración a la hora de escribir el código. 

Tutorial

Sprites

Para comenzar primero crearemos un nuevo proyecto, dentro del mismo crearemos un sprite "spr_jugador_1", de origen x=16 y=32, un sprite "spr_bala_1", de origen x=-39 y=-6, otro sprite "spr_caja_1" con origen x=0 y=0 y por último uno llamado "spr_colision_1" que debe estar centrado y con la casilla "Precise collision checking" marcada.
Debe utilizar éstos orígenes para los sprites que nosotros les otorgamos, en caso de utilizar otros los orígenes deberán establecerlos dependiendo de los mismos.

Curso de GML: Shooter Zombie (TDS) #1
Zombies
facil


Obj_jugador

Una vez hecho esto crearemos un objeto llamado "obj_jugador", cuyas propiedades deben ser visible y sólido. A éste deberemos cambiarle la máscara de colisión por el del sprite "spr_colision_1", lo podemos hacer mediante las propiedades del objeto o colocando el siguiente código en el evento Create.

/////Create

mask_index=spr_colision_1
Dentro del mismo añadiremos un evento Step o Paso, y en él, un bloque de código con la siguiente escritura:
/////Step

rot=point_direction(x,y,mouse_x,mouse_y)

scr_wasd_move(8)

scr_flechas_move(8)


Ésto lo que hará será establecer una variable (rot) que contendrá el ángulo existente entra la posición del jugador y la del mouse, luego colocamos uno de los scripts de movimiento(o ambos), con una velocidad de 8.
En Game Maker, el ángulo que se utiliza como para la rotación de un sprite es el ángulo 0º, por éste motivo es que las imágenes deben estar mirando hacia la derecha.
Nota: esto también podría hacerse modificando el image_angle, pero a veces tendrás problemas con las colisiones, por eso decidí explicarlo de ésta manera.


game maker




A continuación añadiremos un evento Draw, y en él, un bloque de código con la siguiente escritura:

/////Draw

draw_sprite(mask_index,0,x,y)
draw_sprite_ext(sprite_index,image_index,x,y,1,1,rot,c_white,1)


Éste código dibujará dos cosas, primero la sprite de la máscara de colision, simplemente para que revisen que esté ubicada correcramente, pueden borrarlo luego, y después dibuja el sprite del jugador, en sus posciciones de x e y, con el ángulo establecido(rot), el color "c_white" para que no haga cambios en el color del sprite y un alpha de 1, es decir completamente visible.

studio


Obj_caja

Ahora crearemos un nuevo objeto llamado "obj_caja", al que le aplicaremos las propiedades de visible y sólido y le asignamos el sprite "spr_caja_1" simplemente.

scripts


Obj_bala_1

Nuevamente añadiremos otro objeto, el "obj_bala_1" con el siguiente código en el evento Create:

/////Create

image_angle=point_direction(x,y,mouse_x,mouse_y)
move_towards_point(mouse_x,mouse_y,15)


De ésta manera la "obj_bala_1" se creará en dirección al mouse, y se dirigirá a éste a una velocidad de 15.
Luego, en el evento de colisión con el "obj_caja" colocamos lo siguiente para que la bala se destruya:

/////Colision

instance_destroy()


Obj_jugador

Para finalizar volvemos al "obj_jugador" y le agregamos la siguiente linea en el evento Step:

if mouse_check_button_pressed(mb_left){instance_create(x,y,obj_bala_1)}


A partir de éste momento cuando hagas click se creará una bala, que, por lo establecido antes, saldrá en dirección del mouse.

Ahora en el evento de colisión con el "obj_caja" colocamos éste código:

/////Colision

hspeed=0
vspeed=0


Preparando el Room

Lo siguiente es colocar todo ésto en un nuevo Room, pon a tu jugador a disparar contra algunas cajas.

programar


Felicitaciones

Hasta aquí llega la primera parte de éste tutorial, nos vemos en la próxima...

Anímese

Anímese a agregarle todo lo que quiera y a intentar avanzar por su cuenta, esto es un guía, no un manual de instrucciones, no necesita hacer todo al pie de la letra.

Datos archivados del Taringa! original
11puntos
1,284visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

T
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.