Está en la página 1de 3

Traduciendo el GML.

He visto a muchos caer en la situacin de copiar y pegar cdigos directos


de ejemplos, o de algn otro pero el mayor problema no reside aqu
La problemtica se presenta cuando tienen que modificar valor alguno para
adaptarlo a su juego, en vista de que solo copian y pegan, sin poder
comprender la lgica de los cdigos que usa. Aqu crearemos un mtodo de
traduccin simplificado para los cdigos, de manera que podamos entender
la lgica creada de los mismos, y la funcion que ejecutan.
Es necesario entender que los computadores no son inteligentes, estos solo
estn basados en una lgica constituida por una extensa cantidad de datos.
De igual forma es la programacin, le damos los cdigos necesarios a un
programa para crear una lgica.
Ejemplo. En decimos, si el vaso de vidrio esta muy cerca del fuego se
destruye. Seria as en cdigos del GML. if distance_to_object(fuego)<5
{instance_destroy()}.
Como puedes notar usamos una lgica comn un vaso muy cerca del fuego
se rompera.
A esto nos referimos con traducir el GML. Lo que se habla es de traducir
una idea y/o accin lgica a cdigo de GML, para usarse en un programa.
Entendamos algo no todos los video juegos deben basarse plenamente en la
lgica de la vida real, Recordemos que cada juego posee su propia realidad
basada en el cuento de ficcin creado para el mismo. Por ejemplo, en las
pelculas donde ocurren sucesos donde se enfrentan a personajes
extraterrestres y otros la realidad que han planteado durante el inicio da
como realidad la posibilidad de existir dichos sucesos, en palabras simples
crean su propia realidad dentro de un cuento.
Cuando creemos un juego primero una lgica del funcionamiento de x
instancias, y procedamos a traducirlo a GML ejemplo.
Para el objNave.
La nave se mueve al presionar las teclas left = isquierda, Right =derecha,
up= Arriba, Down =Abajo. Pero si presiono la tecla Space deber disparar,
Y si una nave enemiga choca contra la ma se destruyen ambas y se reinicia
el nivel quitndome una vida, y cuando no tenga vidas perder el juego,
pero si destruyo todas las naves enemigas voy al siguiente nivel.
Ahora traduzcamos esto a GML.
En el event step de objNave.
if
if
if
if
if

keyboard_check(vk_left){x-=5} //moverse a la isquierda


keyboard_check(vk_right){x+=5} //moverse a la derecha.
keyboard_check(vk_up){y-=5} //moverse arriba.
keyboard_check(vk_down){y+=5} //moverse abajo.
keyboard_check(vk_space){instance_create(x,y,objBala} //disparar.

//cuando no tenga mas vidas muestra un cartel que dice Game Over y
reinicia el juego.

if lives<1 {show_message("Game Over"); game_restart()}


//cuando no queden mas naves enemigas pasa al siguiente nivel.
if instance_number(NaveEnemiga)<1 {room_goto_next()}

En el event de collision de objNave contra NaveEnemiga.


lives-=1; //Resta una vida.
with(NaveEnemiga)instance_destroy();//la NaveEnemiga se destruye.
self.instance_destroy();//objNave se destruye.
room_restart(); //reinicia el nivel.

Como puedes ver se a cumplido todo lo antes mencionado.


Por ello cuando pienses en tu juego crea una lgica en texto normal y luego
interprtalo en GML.
Ahora aremos algo distinto vamos a traducir el GML a palabras comunes
de esta manera comprender mas su lenguaje.
Tenemos el siguiente cdigo Numerado para mayor facilidad de
comprender.
En el event step.
1) if place_free(x,y+1){gravity_direction=270
gravity=0.5}else{gravity=0;}
2) if vspeed>14{vspeed=14}
3) if x< obj_player.x
{
if place_free(x+5,y){ x+=4}
if not place_free(x,y+1)and place_free(x+8,y+1)
{vspeed-=14; if place_free(x+5,y){ x+=5}}}

Explicacion.
Como puedes ve en este cdigo se trabaja mucho con las posiciones X Y, por ello es
necesario comprender que X es la posicin horizontal del room en el que actualmente
estas, X en positivo es asa la derecha y en valor negativo asa la izquierda. As como Y
es la posicin vertical del room en el que actualmente estas, Y positivo es asa abajo, Y
negativo es asa arriba.

1) si esta libre la posicin de Y un pxel mas abajo libre, {se activa la gravedad a
0.5 y su direccin ser asa abajo.} de lo contrario {la gravedad no poseer
velocidad de movimiento.}

2) si la velocidad vertical es mayor a 14 {ser igual a 14}


3) si X es menor a la posicin X del obj_player {si la posicin de X 5 pxel
adelantes esta libre pero la de Y normal {se mueve 4 pxel asa la derecha.}
Si no esta libre la posicin de Y un pxel abajo esta ocupada y esta libre 8 pxel
adelante la posicin X pero Y un pxel abajo libre. {Se mover verticalmente

asa arriba a14 pxeles y verificara si esta libre la posicin X 5 pxeles adelante
{se mover a 5 pxeles a la derecha}}}
Este cdigo que han visto a sido usado en unos de mis juegos de plataformas
para que el enemigo me persiga tomando en cuenta que debe saltar cuando no
aya suelo y a la vez perseguir al jugador, claro que aqu solo ven una parte del
cdigo en esta solo persigue asa la derecha nos es necesario colocarlo completo
ya que solo deberan usar otro igual colocando valores - + contrarios, para que
siga asa la izquierda.
Con esto me refiero a traducir el GML es tratar de leer no los cdigos si no lo
que dicen en palabras comunes estos
Bueno esto es todo. Espero lo comprendan.

También podría gustarte