Sunteți pe pagina 1din 29

Guia de acciones Drag & Drop

en codigo GML
http:/www.aprendegamemaker.com/
David Lpez 2015
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Si has empezado con Game Maker, es muy posible que hayas utilizado las acciones
Drag&Drop para programar tus objetos, has podido hacer juegos sencillos y te has
habituado a la interfaz del programa.
Una vez hecho varios proyectos, es el momento de dar el salto, hacer cosas ms
complejas, y eso pasa por codificar en gml. Pero si no ests acostumbrado a
programar, pasar de hacer acciones Drag and Drop a escribir en GML puede ser muy
frustante, ya que el cambio puede ser un poco confuso.
Una manera de hacerlo ms fcil de entender es relacionar cada botn de accin con
una funcin (a veces un grupo de funciones o instrucciones). De esta manera,
sustituimos una accin por cdigo GML, y la transicin resulta ms fcil.
En versiones anteriores de Game Maker, vea en internet documentos con la
equivalencia entre acciones y GML. Como no lo he visto en Game Maker Studio, a
continuacin vamos a hacer una referencia dnde veremos la accin y su cdigo
equivalente.

Explicacin de la tabla de referencia


La intencin es ayudar a los usuarios para familiarizarse con el cdigo, y as utilizar el
lenguaje de Game Maker. No explicaremos las funciones, ni sus parmetros de entrada
o su salida, ni poner ejemplos de cmo usarlos. Eso ya lo iremos haciendo en futuros
posts, adems de la documentacin de Game Maker.

Para cada accin, har una tabla con 3 columnas: la primera con el icono y nombre de
la accin, la segunda las opciones que aparecen para modificar dicha accin y la
tercera su cdigo equivalente. Tendr un aspecto parecido a ste:

Accin Opciones Cdigo GML


Direction: seleccionable con fechas ///Cdigo GML
Speed: nmero speed = numero;
Move fixed

La columna de Opciones concretaremos el tipo de datos, nmero o texto


principalmente, que espera como entrada, y veremos que tendr una equivalencia en
el cdigo.

El cdigo GML puede ser, como hemos dicho anteriormente, una funcin o una serie
de instrucciones varias. A veces pondr dos posibles soluciones, para que podamos
comparar. Es posible que veamos ms parmetros en las funciones GML que en las

2
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

acciones, simplemente pondr los que den el mismo resultado, sabiendo que un
cambio en ellos har otros efectos. Por ejemplo:

draw_text(x, y, "Hola");
draw_text_ext(x, y, "Hola", 1, 1);
draw_text_colour(x, y, "Hola", c_white, c_white, c_white,
c_white, 1);
draw_text_transformed(x, y, "Hola", 1, 1, 0);

Son iguales, pero usar una funcin u otra es para poder usar los parmetros que ms
se adecuan a cada situacin. En esta referencia slo pondr una funcin, y si existiesen
ms parmetros dejar el valor por defecto.

Cdigo GML de los atributos comunes


Ya comentamos en su momento, en los detalles de una accin en Game Maker, que
existen propiedades comunes a la mayora de las acciones, y que no explicar en cada
accin. Nos referimos al apartado Applies to, al check Relative y el check NOT (de
negacin).

Applies to / Aplica a

En este apartado vemos tres opciones, para saber que dicha accin se ejecuta en Self,
el objeto dnde se aade, Other, el objeto que afecta a la colisin y Object: cualquier
objeto que le digamos.
Para Self no hay que hacer nada extra, pero para las otras opciones usaremos la
instruccin with.

with (other) {
//Cdigo GML de la tercera columna
}

with (nombre_objeto) {
//Cdigo GML de la tercera columna
}

Relative

Si damos un valor a una variable, por ejemplo score, con la accin correspondiente,
perderemos el valor que ya tena. Esta casilla se utiliza para no perder ese valor y

3
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

aumentarlo/incrementarlo. Su equivalencia se hace con el operador +=. Por ejemplo,

para aumentar en 10 puntos la variable score, usamos Set Variable , en value


ponemos 10 y marcamos el check Relative. El cdigo equivalente en GML es:

score += 10;

Otro ejemplo que se usara en una funcin, si creamos un objeto con el check Relative,
sera as:

instance_create(x + 20, y + 20, object_enemy);

NOT

En las acciones comparacin, se suele distinguir fcilmente porque tienen forma de


hexgono, suele verse el check NOT. Se utiliza para hacer la negacin de la pregunta, y
se usa el smbolo de exclamacin. Por ejemplo

if (x != 50)

if (!place_free(x, y))

Recordemos que en funciones que devuelven si es verdad o falso, booleanas, tenemos


varias maneras de escribir la condicin.

4
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

//Todo esto es lo mismo


if (!place_free(x, y))

if (place_free(x, y) == false)

if (place_free(x, y) != true)

Cuando programamos podemos hacerlo de la manera en que nos sintamos ms a


gusto.

Y ahora s, empieza la gua de acciones para convertir a cdigo GML.

5
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Gua de acciones a cdigo GML


Tienes a continuacin la gua completa de todas las acciones y su cdigo. Vers un
apartado para cada pestaa.

La pestaa move

Accin Opciones Cdigo GML


direction: seleccionable con Usando variables
fechas
Move speed: nmero flecha1 = 0;
fixed flecha2 = 45;
flecha3 = 90;
flecha4 = 135;
flecha5 = 180;
flecha6 = 225;
flecha7 = 270;
flecha8 = 315;
//Aadir por cada flecha
marcada/elegida.
direction = choose(arrow1, arrow2,
arrow3, ...);
speed = numero;

Equivalente al anterior, usando las flechas


y la misma variable de direction

motion_set(direction, speed);

Accin Opciones Cdigo GML


direction: numero Usando variables
speed: nmero
Move free direction = numero;
speed = numero;

Usando una funcin

motion_set(direction, speed);

6
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


x: nmero move_towards_point(x, y, speed);
y: nmero
Move Towards speed: nmero

Accin Opciones Cdigo GML


Hor. speed: nmero hspeed = numero;

Speed Horizontal

Accin Opciones Cdigo GML


Vert. speed: nmero vspeed = numero;

Speed Vertical

Accin Opciones Cdigo GML


direction: nmero gravity_direction = numero;
gravity: nmero gravity = numero;
Set Gravity

Accin Opciones Cdigo GML


hspeed = -hspeed;

Reverse Horizontal

Accin Opciones Cdigo GML


vspeed = -vspeed;

Reverse Vertical

7
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


Friction: nmero friction = numero;

Set Friction

Accin Opciones Cdigo GML


x: nmero x = numero;
y: nmero y = numero
Jump to Position

Accin Opciones Cdigo GML


x = xstart;
y = ystart;
Jump to Start

Accin Opciones Cdigo GML


Snap hor: nmero move_random(snap_hor, snap_vert);
Snap vert: nmero
Jump to Random

Accin Opciones Cdigo GML


Snap hor: nmero move_snap(snap_hor, snap_vert);
Snap vert: nmero
Align to grid

8
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


direction: horizontal Horizontal
vertical
Wrap in both directions move_wrap(true, false, sprite_width / 2);
Screen
Vertical

move_wrap(false, true, sprite_width / 2);

En ambas direcciones

move_wrap(true, false, sprite_width / 2);


move_wrap( false, true, sprite_height /
2);

Accin Opciones Cdigo GML


direction: nmero Objetos slidos
maximum: nmero
Move to against: solid move_contact_solid(direction, maximum);
Contact objects
Todos los objetos
all objects

move_contact_all(direction, maximum);

Accin Opciones Cdigo GML


precise: booleano Objetos slidos
against: solid objects
Bounce all objects move_bounce_solid(precise);

Todos los objetos

move_bounce_all(precise);

9
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


path: ruta path_start(path, speed, at_end, relative);
speed: nmero
Set at end (nmero): 0-stop
Path 1-continue from start
2-continue from here
3-reverse
relative: booleano

Accin Opciones Cdigo GML


path_end();

End Path

Accin Opciones Cdigo GML


position: nmero 0-1 path_position = numero;

Path Position

Accin Opciones Cdigo GML


speed: nmero path_speed = numero;

Path Speed

Accin Opciones Cdigo GML


x: nmero mp_linear_step(x, y, speed, stop_at);
y: nmero
Step Towards speed: nmero
stop at: booleano

10
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


x: nmero mp_potential_step(x, y, speed, avoid);
y: nmero
Step Avoiding speed: nmero
avoid: booleano

La pestaa main1

Accin Opciones Cdigo GML


object: objeto instance_create(x, y, objeto);
x: nmero
Create Instance y: nmero

Accin Opciones Cdigo GML


object: objeto Utilizando funcin
x: nmero
Create y: nmero obj = instance_create(x, y, objeto);
Moving speed: nmero with (obj) {motion_set(direction, speed);}

direction: nmero
Utilizando variables

obj = instance_create(x, y, objeto);


obj.speed = numero;
obj.direction = numero;

Accin Opciones Cdigo GML


object1: objeto //en GML, la funcin choose permite hasta 15
object2: objeto parmetros!
Create object3: objeto obj = choose(object1, object2, object3,
Random object4: objeto object4);
x: nmero instance_create(x, y, obj);
y: nmero

11
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


change into: objeto instance_change(change_into,
perform perform_events);
Change events: booleano
Instance

Accin Opciones Cdigo GML


instance_destroy();

Destroy Instance

Accin Opciones Cdigo GML


x: nmero position_destroy(x, y);
y: nmero
Destroy at Position

Accin Opciones Cdigo GML


sprite: sprite sprite_index = nombre_sprite;
subimage: nmero image_index = numero;
Change Sprite speed: nmero image_speed = numero;

Accin Opciones Cdigo GML


xscale: nmero image_xscale = numero;
yscale: nmero image_yscale = numero;
Transform Sprite angle: nmero image_angle = numero;
mirror: no mirroning //mirror horizontal
mirror horizontal image_xscale *= -1;
flip vertical //flip vertical
mirror and flip image_yscale *= -1;

12
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


color: color image_blend = color;
alpha: nmero image_alpha = numero;
Color Sprite

Accin Opciones Cdigo GML


sound: sound audio_play_sound(nombre_sonido, 0, loop);
loop: booleano
Play Sound

Accin Opciones Cdigo GML


sound: sound audio_stop_music(nombre_sonido);

Stop Sound

Accin Opciones Cdigo GML


sound: sound if sound_isplaying(nombre_sonido)

Check Sound

Accin Opciones Cdigo GML


room_goto_previous();

Previous Room

Accin Opciones Cdigo GML


room_goto_next();

Next Room

13
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


room_restart();

Restart Room

Accin Opciones Cdigo GML


room: room room_goto(room);

Different Room

Accin Opciones Cdigo GML


if (room_previous(room) != -1)

Check Previous

Accin Opciones Cdigo GML


if (room_next(room) != -1)

Check Next

La pestaa main2

Accin Opciones Cdigo GML


number of steps: nmero alarm[0..11] = numero;
in alarm no: 0-11
Set Alarm

14
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


time line: timeline timeline_index = nombre_timeline:
position: nmero timeline_running = booleano;
Set Time Line start: booleano timeline_lop = booleano;
loop: booleano

Accin Opciones Cdigo GML


position: nmero timeline_position = numero;

Time Line Position

Accin Opciones Cdigo GML


speed: nmero timeline_speed = numero;

Time Line Speed

Accin Opciones Cdigo GML


timeline_running = true;

Start Time Line

Accin Opciones Cdigo GML


timeline_running = false;

Pause time Line

Accin Opciones Cdigo GML


timeline_running = false;
timeline_position = 0;
Stop Time Line

15
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


message: cadena show_message(texto);

Display Message

Accin Opciones Cdigo GML


URL: url url_open(url);

Open URL

Accin Opciones Cdigo GML


game_restart();

Restart Game

Accin Opciones Cdigo GML


game_end();

End Game

Accin Opciones Cdigo GML


filename: nombre archivo game_save(nombre_archivo);

Save Game

16
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


file name: nombre archivo game_load(nombre_archivo);

Load Game

Accin Opciones Cdigo GML


sprite: sprite sprite_replace(sprite, nombre_archivo,
filename: nombre numero, 0, 0);
Replace archivo
Sprite images: nmero

Accin Opciones Cdigo GML


background: background background_replace(nombre_background,
filename: nombre nombre_archivo);
Replace archivo
Background

La pestaa control

Accin Opciones Cdigo GML


x: nmero Objetos slidos
y: nmero
Check Empty objects: Only Solid if (place_free(x, y))

All
Todos los objetos

if (place_empty(x, y))

Accin Opciones Cdigo GML


x: nmero Objetos slidos
y: nmero if (place_free(x, y))
Check Collision objects: Only Solid
All Todos los objetos
if (place_empty(x, y))

17
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


object: objeto if (place_meeting(x, y, nombre_objeto))
x: nmero
Check Object y: nmero

Accin Opciones Cdigo GML


object: objeto Igual a
number: nmero
Test Instance operation: equal to if (instance_number(nombre_objeto) ==
Count smaller than numero)
larger than
Menor que

if (instance_number(nombre_objeto) <
numero)

Mayor que

if (instance_number(nombre_objeto) >
numero)

Accin Opciones Cdigo GML


side: nmero if(floor(random(numero)) == 0)

Test Chance

Accin Opciones Cdigo GML


question: cadena if (show_question(cadena))

Check Question

18
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


expression: expresion if (expresion)

Test Expression

Accin Opciones Cdigo GML


button: no if(mouse_check_button(button))
left
Check Mouse middle
right

Accin Opciones Cdigo GML


Snap Hor: nmero if (place_snapped(snap_hor, snap_vert))
Snap Vert: nmero
Check Grid

Accin Opciones Cdigo GML


{

Start Block

Accin Opciones Cdigo GML


}

End Block

Accin Opciones Cdigo GML


else

Else

19
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


exit;

Exit Event

Accin Opciones Cdigo GML


times: nmero repeat(numero)

Repeat

Accin Opciones Cdigo GML


event_inherited();

Call Parent Event

Accin Opciones Cdigo GML


No aplica

Execute Code

Accin Opciones Cdigo GML


script: Script Se llama al nombre del script con sus posibles
argument0: parmetro parmetros
Execute argument1: parmetro
Script argument2: parmetro script();
argument3: parmetro
argument4: parmetro

20
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


comment: cadena Una lnea

Comment //cadena

Un bloque de lneas

/*
cadena
*/

Accin Opciones Cdigo GML


variable: nombre variable nombre_variable = valor;
value: valor
Set Variable

Accin Opciones Cdigo GML


variable: nombre variable Igual a
value: valor
Test Variable operation: equal to if (nombre_variable == valor)
less than
Menor que
greater than
less than or equal to
if (nombre_variable < valor)
greater than or equal to
Mayor que

if (nombre_variable > valor)

Menor o igual que

if (nombre_variable <= valor)

Mayor o igual que

if (nombre_variable >= valor)

21
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


variable: nombre_variable draw_text(x, y, nombre_variable);
x: nmero
Draw Variable y: nmero

La pestaa score

Accin Opciones Cdigo GML


new score: nmero score = numero;

Set Score

Accin Opciones Cdigo GML


value: nmero Igual que
operation: equal to
Test Score smaller than if (score == numero)
larger than
Menor que

if (score < numero)

Mayor que

if (score > numero)

Accin Opciones Cdigo GML


x: nmero draw_text(x, y, "cadena" + string(score));
y: nmero
Draw Score caption: cadena

22
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


highscore_clear();

Clear highscore

Accin Opciones Cdigo GML


new lives: nmero lives = numero;

Set Lives

Accin Opciones Cdigo GML


value: nmero Igual que
operation: equal to
Test Lives smaller than if (lives == numero)

larger than
Menor que

if (lives < numero)

Mayor que

if (lives > numero)

Accin Opciones Cdigo GML


x: nmero draw_text(x, y, "cadena" + string(lives));
y: nmero
Draw Lives caption: cadena

23
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


x: nmero for (i = 0; i < lives; i++) {
y: nmero ancho = i * sprite_get_width(nombre_sprite);
Draw Life image: draw_sprite(nombre_sprite, 0, x + ancho, y);
Images nombre }
sprite

Accin Opciones Cdigo GML


value (0-100): nmero health = numero;

Set Health

Accin Opciones Cdigo GML


value: nmero Igual a
operations: equal to
Test Health smaller than if (health == numero)

larger than
Menor que

if (health < numero)

Mayor que

if (health > numero)

Accin Opciones Cdigo GML


x1: nmero draw_healthbar(x1, y1, x2, y2, health, back_color,
y1: nmero bar_color, 0, true, true);
Draw x2: nmero
Health y2: nmero
back
color: color
bar
color: color

24
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

La pestaa extra

Todas las acciones de partculas se detallarn prximamente.

Accin Opciones Cdigo GML


sprite: sprite cursor_sprite = nombre_sprite;
cursor: don't cursor
Set Cursor show Sin cursor

windows_set_cursor(cr_none);

Monstrando cursor

windows_set_cursor(cr_default);

La pestaa draw

Accin Opciones Cdigo GML


draw_self();

Draw Self

Accin Opciones Cdigo GML


sprite: sprite draw_sprite(nombre_sprite, subimage, x, y);
x: nmero
Draw y: nmero
Sprite subimage: nmero

25
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


background: background Si tiled = false
x: nmero
Draw y: nmero draw_background(nombre_background, x,
Backgroun tiled: booleano y);
d
Si tiled = true

draw_background_tiled(nombre_backgrou
nd, x, y);

Accin Opciones Cdigo GML


text: cadena draw_text(x, y, cadena);
x: nmero
Draw Text y: nmero

Accin Opciones Cdigo GML


text: cadena draw_text_transformed(x, y, cadena, xscale,
x: nmero yscale, angle);
Draw Scaled y: nmero
Text xscale: nmero
yscale: nmero
angle: nmero

Accin Opciones Cdigo GML


x1: nmero draw_rectangle(x1, y1, x2, y2, filled);
y1: nmero
Draw Rectangle x2: nmero
y2: nmero
filled: booleano

26
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


x1: nmero draw_rectangle_color(x1, y1, x2, y2, color1,
y1: nmero color2, color2, color1, false);
Horizontal x2: nmero
Gradient y2: nmero
color1: color
color2: color

Accin Opciones Cdigo GML


x1: nmero draw_rectangle_color(x1, y1, x2, y2, color1,
y1: nmero color1, color2, color2, false);
Vertical x2: nmero
Gradient y2: nmero
color1: color
color2: color

Accin Opciones Cdigo GML


x1: nmero draw_ellipse(x1, y1, x2, y2, filled);
y1: nmero
Draw Ellipse x2: nmero
y2: nmero
filled: booleano

Accin Opciones Cdigo GML


x1: nmero draw_ellipse_color(x1, y1, x2, y2, color1,
y1: nmero color2, false);
Gradient x2: nmero
Ellipse y2: nmero
color1: color
color2: color

27
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


x1: nmero draw_line(x1, y1, x2, y2);
y1: nmero
Draw Line x2: nmero
y2: nmero

Accin Opciones Cdigo GML


x1: nmero draw_arrow(x1, y1, x2, y2, tip_size);
y1: nmero
Draw Arrow x2: nmero
y2: nmero
tip size: nmero

Accin Opciones Cdigo GML


color: color draw_set_color(color);

Set Color

Accin Opciones Cdigo GML


font: font draw_set_font(font);
align: left draw_set_halign(align);
Set Font center
right

28
GuIa de acciones Drag&Drop en codigo GML

http:/www.aprendegamemaker.com/

Accin Opciones Cdigo GML


action switch Intercambiar
window
Set Full fullscreen window_set_full_screen(!window_get_fullscreen());
Screen
Modo ventana

window_set_full_screen(false);

Pantalla copleta

window_set_full_screen(true);

Accin Opciones Cdigo GML


filename: nombre archivo screen_save(nombre_archivo);

Take Snapshot

Accin Opciones Cdigo GML


type: effect Debajo de los objetos
x: nmero
Create y: nmero effect_create_below(type, x, y, size,
Effect size: small color);
medium
Encima de los objetos
large
color: color
effect_create_above(type, x, y, size,
where: below
color);
objects
above objects

29

S-ar putea să vă placă și