diff --git a/Manual/contents/Additional_Information/Bitwise_Operators.htm b/Manual/contents/Additional_Information/Bitwise_Operators.htm index de82dc76a..508a2515e 100644 --- a/Manual/contents/Additional_Information/Bitwise_Operators.htm +++ b/Manual/contents/Additional_Information/Bitwise_Operators.htm @@ -147,10 +147,10 @@

Operadores Bitwise y Binarios

Llaves y puertas

-

Digamos que tienes un nivel con varias puertas, y una llave para cada una. ¿Cómo puedes marcar fácilmente una llave para una puerta específica? Bueno, normalmente asignarías un ID a la llave y a la puerta. ¿Y qué pasa si quieres que una llave abra 2 o 3 puertas? Es fácil. Utilizas una MÁSCARA. La puerta tendría un solo bit asignado así:
+

Digamos que tienes un nivel con varias puertas, y una llave para cada una. ¿Cómo puedes marcar fácilmente una llave para una puerta específica? Bueno, normalmente asignarías un ID a la llave y a la puerta. ¿Y qué pasa si quieres que una llave abra 2 o 3 puertas? Es fácil. Utilizas una MÁSCARA. La puerta tendría un solo bit asignado así:

door_id = 1; // 0001

-

Los otros serían algo así como:
+

Los otros serían algo así como:

door_id=2; // 0010
door_id=4; // 0100
diff --git a/Manual/contents/Additional_Information/Errors/Compiler_Errors.htm b/Manual/contents/Additional_Information/Errors/Compiler_Errors.htm index 6dc0b4e4f..68e370e47 100644 --- a/Manual/contents/Additional_Information/Errors/Compiler_Errors.htm +++ b/Manual/contents/Additional_Information/Errors/Compiler_Errors.htm @@ -69,8 +69,8 @@

Errores de compilación

Comentario no cerrado (/*) al final del script - Ha creado un comentario en script utilizando
- /* [comment] */
+ Ha creado un comentario en script utilizando
+ /* [comment] */
pero no ha proporcionado la etiqueta de cierre del comentario @@ -97,7 +97,7 @@

Errores de compilación

No se puede negar una cadena - Has intentado negar un string, por ejemplo
+ Has intentado negar un string, por ejemplo
string = -string @@ -156,7 +156,7 @@

Errores de compilación

No se puede utilizar un nombre de función/script para una variable, utilizando [functions/script] - Ha intentado utilizar un nombre de función o un nombre de script como variable, por ejemplo:
+ Ha intentado utilizar un nombre de función o un nombre de script como variable, por ejemplo:
string = "Hello World" @@ -173,7 +173,7 @@

Errores de compilación

Ha suministrado un número incorrecto de argumentos al utilizar un accesorio - Tipo de argumentos erróneos para (uno de los siguientes):
+ Tipo de argumentos erróneos para (uno de los siguientes):
/, div, mod, +, -, &&, ||, &, |, ^, <<, >> Ha suministrado un tipo de argumento incorrecto para la expresión que se está evaluando @@ -247,7 +247,7 @@

Errores de compilación

Operador condicional malformado - Ha utilizado un operador condicional (ternario) erróneo o if statement, y no el formato:
+ Ha utilizado un operador condicional (ternario) erróneo o if statement, y no el formato:
[condition] ? [expression1] : [expression2]; @@ -260,8 +260,8 @@

Errores de compilación

En el código estás utilizando un operador de asignación erróneo - Malformado
- if / repeat / while / do / for / with / switch / break / continue / exit
+ Malformado
+ if / repeat / while / do / for / with / switch / break / continue / exit
declaración La estructura del enunciado dado es incorrecta. @@ -408,16 +408,16 @@

Errores de compilación

- Símbolo ( esperado
- Símbolo ) esperado
- Símbolo , o ) esperado
- Símbolo { esperado
- Símbolo } esperado
- Símbolo , o } esperado
- Símbolo : esperado
- Símbolo ; esperado
- Símbolo [ esperado
- símbolo ] esperado
+ Símbolo ( esperado
+ Símbolo ) esperado
+ Símbolo , o ) esperado
+ Símbolo { esperado
+ Símbolo } esperado
+ Símbolo , o } esperado
+ Símbolo : esperado
+ Símbolo ; esperado
+ Símbolo [ esperado
+ símbolo ] esperado
Símbolo , o ] esperado No ha utilizado un símbolo requerido al escribir su código diff --git a/Manual/contents/Additional_Information/Errors/Runner_Errors.htm b/Manual/contents/Additional_Information/Errors/Runner_Errors.htm index ef8614f61..b30685901 100644 --- a/Manual/contents/Additional_Information/Errors/Runner_Errors.htm +++ b/Manual/contents/Additional_Information/Errors/Runner_Errors.htm @@ -19,11 +19,11 @@

Errores del corredor

Los errores de ejecución son generalmente más serios que los de compilación, ya que significan que hay algo seriamente incorrecto en su código que ni el editor de código ni el compilador han podido detectar, y como tal debe prestar atención a todos esos errores. Cuando se produce uno, puede utilizar el botón Copiar de la ventana emergente para copiar el error en el portapapeles, que luego puede pegar en un archivo de texto (o donde sea) para futuras referencias.

La estructura de este error es la siguiente:

Como se ha mencionado anteriormente, algunos mensajes de error no identificarán el ámbito por un valor de ID de instancia, sino por un valor negativo . Estos valores pueden ser utilizados para precisar la naturaleza exacta del error y a qué se refiere con los siguientes valores posibles:

@@ -264,7 +264,7 @@

Errores del corredor

With No se puede utilizar global en la declaración con Con - Has intentado utilizar "global" como variable dentro de una sentencia "with", es decir:
+ Has intentado utilizar "global" como variable dentro de una sentencia "with", es decir:
with (global)
   {
   //do something;
@@ -275,7 +275,7 @@

Errores del corredor

With No se puede utilizar local en la declaración con Con - Has intentado utilizar "local" como variable dentro de una sentencia "with", es decir:
+ Has intentado utilizar "local" como variable dentro de una sentencia "with", es decir:
with (local)
   {
   //do something;
diff --git a/Manual/contents/Additional_Information/Errors/Syntax_Errors.htm b/Manual/contents/Additional_Information/Errors/Syntax_Errors.htm index 74b139ec4..7bfd7d9ee 100644 --- a/Manual/contents/Additional_Information/Errors/Syntax_Errors.htm +++ b/Manual/contents/Additional_Information/Errors/Syntax_Errors.htm @@ -69,7 +69,7 @@

Lista de errores de sintaxis

Expresión innecesaria [val] utilizada como declaración Syntax Error Icon - Este error se produce cuando el corrector sintáctico detecta una expresión (mostrada en [val]) donde esperaba una sentencia. Por ejemplo, el siguiente código arrojará el error ya que espera el operador ternario ? pero encuentra 32:
+ Este error se produce cuando el corrector sintáctico detecta una expresión (mostrada en [val]) donde esperaba una sentencia. Por ejemplo, el siguiente código arrojará el error ya que espera el operador ternario ? pero encuentra 32:
temp_x = x < (room_width / 2)  32: room_width - 32; @@ -101,7 +101,7 @@

Lista de errores de sintaxis

Tengo "[val1]", esperaba "[val2]" Syntax Error Icon - Esto sucede cuando el verificador de sintaxis espera algún valor o símbolo pero obtiene uno diferente, donde [val1] es el símbolo o valor actual, y [val2] es el símbolo o valor esperado. Por ejemplo:
+ Esto sucede cuando el verificador de sintaxis espera algún valor o símbolo pero obtiene uno diferente, donde [val1] es el símbolo o valor actual, y [val2] es el símbolo o valor esperado. Por ejemplo:
Got "{", expected "(" @@ -118,14 +118,14 @@

Lista de errores de sintaxis

Declaración [val] vacía Syntax Error Icon - Esto ocurre cuando se termina una sentencia y se deja vacía. Por ejemplo, el siguiente código dará el error (nótese el punto y coma final):
+ Esto ocurre cuando se termina una sentencia y se deja vacía. Por ejemplo, el siguiente código dará el error (nótese el punto y coma final):
if (x < 0); No se permiten las llamadas a funciones anidadas Syntax Error Icon - Esto puede ocurrir cuando se intenta anidar llamadas a funciones dentro de una sentencia, por ejemplo
+ Esto puede ocurrir cuando se intenta anidar llamadas a funciones dentro de una sentencia, por ejemplo
ds_list_find_value(list, 0)).sprite_index diff --git a/Manual/contents/Additional_Information/Guide_To_Using_Buffers.htm b/Manual/contents/Additional_Information/Guide_To_Using_Buffers.htm index efa325270..6912ed762 100644 --- a/Manual/contents/Additional_Information/Guide_To_Using_Buffers.htm +++ b/Manual/contents/Additional_Information/Guide_To_Using_Buffers.htm @@ -28,22 +28,22 @@

Guía para el uso de tampones

buffer_fixed -
+
Un buffer de un tamaño fijo en bytes. El tamaño se establece cuando se crea el buffer y no se puede volver a cambiar. buffer_grow -
+
Un buffer que crecerá dinámicamente a medida que se añadan datos. Se crea con un tamaño inicial (que debe ser una aproximación al tamaño de los datos que se espera almacenar), y luego se expandirá para aceptar más datos que desborden este tamaño inicial. buffer_wrap -
+
Un buffer en el que se sobreescribirán los datos. Cuando los datos que se añaden alcanzan el límite del tamaño de buffer, la sobreescritura se colocará de nuevo al principio de buffer, y la escritura posterior continuará desde ese punto. buffer_fast -
+
Se trata de un buffer especial "despojado" que es extremadamente rápido para leer/escribir. Sin embargo, sólo puede utilizarse con buffer_u8 data types, y debe estar alineado a 1 byte. (La información sobre los tipos de datos y la alineación de bytes se puede encontrar más adelante en esta página). @@ -53,7 +53,7 @@

Guía para el uso de tampones

Cuando se crea un buffer, siempre se debe intentar crearlo con un tamaño adecuado al tipo, siendo la regla general que se cree para acomodar el tamaño máximo de los datos que va a almacenar, y en caso de duda, utilizar un grow buffer para evitar errores de sobreescritura.

El código real para crear un buffer sería algo así:

player_buffer = buffer_create(16384, buffer_fixed, 2);

-


+


Esto crearía un buffer fijo de 16384 bytes y alineado a 2, con la función devolviendo un valor de identificación único que se almacena en una variable para la posterior referencia de este buffer.

Cuando se leen y escriben datos en buffer, se hace en "trozos" de datos definidos por su "tipo de datos". El "tipo de datos" establece el número de bytes asignados dentro de buffer para el valor que se está escribiendo, y es esencial que lo hagas correctamente, de lo contrario obtendrás resultados muy extraños (o incluso errores) para tu código.

Los búferes se escriben (y se leen) secuencialmente, es decir, se escribe un dato tras otro, y cada dato es de un tipo determinado. Esto significa que lo ideal es saber qué datos se están escribiendo en buffer en todo momento. Estos data types están definidos en GML por las siguientes constantes:

@@ -68,73 +68,73 @@

Guía para el uso de tampones

buffer_u8 1 -
+
Un entero de 8 bits sin signo. Es un valor positivo de 0 a 255. buffer_s8 1 -
+
Un entero de 8 bits con signo. Puede ser un valor positivo o negativo de -128 a 127 (0 se considera positivo). buffer_u16 2 -
+
Un entero de 16 bits sin signo. Es un valor positivo entre 0 y 65.535. buffer_s16 2 -
+
Un entero de 16 bits con signo. Puede ser un valor positivo o negativo entre -32.768 y 32.767 (el 0 se considera positivo). buffer_f16 2 -
+
Un número de 16 bits en coma flotante. Puede ser un valor positivo o negativo dentro del rango de +/- 65504. (¡No se admite actualmente!) buffer_u32 4 -
+
Un entero de 32 bits sin signo. Es un valor positivo de 0 a 4.294.967.295. buffer_s32 4 -
+
Un entero de 32 bits con signo. Puede ser un valor positivo o negativo entre -2.147.483.648 y 2.147.483.647 (el 0 se considera positivo). buffer_f32 4 -
+
Un número de punto flotante de 32 bits. Puede ser un valor positivo o negativo dentro del rango de +/-16777216. buffer_u64 8 -
+
Un valor entero sin signo de 64 bits.(Actualmente no es compatible con todas las funciones de buffer ) buffer_f64 8 -
+
Un número de coma flotante de 64 bits. buffer_bool 1 -
+
Un valor booleano. Sólo puede ser 1 o 0 (true o false) buffer_string N/A -
+
Se trata de un UTF-8 con terminación nula (0x00) string. Básicamente se vuelca un GameMaker string en el buffer, y se pone un 0 al final. diff --git a/Manual/contents/Additional_Information/Guide_To_Using_Particles.htm b/Manual/contents/Additional_Information/Guide_To_Using_Particles.htm index 217924c20..7bd037d89 100644 --- a/Manual/contents/Additional_Information/Guide_To_Using_Particles.htm +++ b/Manual/contents/Additional_Information/Guide_To_Using_Particles.htm @@ -125,7 +125,7 @@

Guía de uso de las partículas

Create Particle System Create Particle Type
Define Particle Type Create Particles At A Position

-
+
Y las curvas de distribución (lineal, gaussiana y gaussiana inversa) se ilustran aquí:

Create Particles Over A Random Area

A continuación se muestra un ejemplo del código/acciones necesarias para definir dos emisores, que normalmente irían en el evento Create de un controlador object, justo después de definir el sistema de partículas. Uno será estático y emitirá partículas sobre el área de todo room, mientras que el otro será dinámico y seguirá al ratón y estallará cada 30 pasos de una pequeña elipse:

diff --git a/Manual/contents/Additional_Information/Obsolete_Functions.htm b/Manual/contents/Additional_Information/Obsolete_Functions.htm index 2b9937a88..a610cee81 100644 --- a/Manual/contents/Additional_Information/Obsolete_Functions.htm +++ b/Manual/contents/Additional_Information/Obsolete_Functions.htm @@ -24,72 +24,72 @@

Funciones obsoletas

dibujar_fondo dibujar_fondo_ext - dibujar_fondo_
+ dibujar_fondo_
estirado - dibujar_fondo_
+ dibujar_fondo_
estirado_ext - dibujar_fondo_
+ dibujar_fondo_
parte - dibujar_fondo_
+ dibujar_fondo_
part_ext - dibujar_fondo_
+ dibujar_fondo_
general - dibujar_fondo_
+ dibujar_fondo_
mosaico - dibujar_fondo_
+ dibujar_fondo_
tiled_ext nombre_de_fondo background_exists - background_get_
+ background_get_
nombre dibujar_fondo draw_background_ext - dibujar_fondo_
+ dibujar_fondo_
estirado - dibujar_fondo_
+ dibujar_fondo_
estirado_ext - background_get_
+ background_get_
ancho - background_get_
+ background_get_
altura - background_get_
+ background_get_
transparente - background_get_
+ background_get_
suave - background_get_
+ background_get_
precarga background_get_uvs - background_get_
+ background_get_
textura - background_set_alpha_
+ background_set_alpha_
from_background - background_create_
+ background_create_
desde_superficie - background_create_
+ background_create_
color - background_create_
+ background_create_
color - background_create_
+ background_create_
gradiente background_add background_replace - background_add_
+ background_add_
alfa - fondo_reemplazar_
+ fondo_reemplazar_
alfa @@ -100,15 +100,15 @@

Funciones obsoletas

background_prefetch - fondo_
+ fondo_
prefetch_multi background_flush - background_flush_
+ background_flush_
multi room_set_background - habitación_de_servicio_
+ habitación_de_servicio_
color_de_fondo @@ -120,45 +120,45 @@

Funciones obsoletas

- fondo_
+ fondo_
índice[0..7] - fondo_
+ fondo_
visible[0..7] - fondo_
+ fondo_
alfa[0..7] - fondo_
+ fondo_
mezcla[0..7] background_x[0..7] background_y[0..7] - fondo_
+ fondo_
color - fondo_
+ fondo_
showcolour - fondo_
+ fondo_
primer plano[0..7] - fondo_
+ fondo_
hspeed[0..7] - fondo_
+ fondo_
vspeed[0..7] - fondo_
+ fondo_
htiled[0..7] - fondo_
+ fondo_
vtiled[0..7] - fondo_
+ fondo_
ancho[0..7] - fondo_
+ fondo_
altura[0..7] - fondo_
+ fondo_
xscale[0..7] - fondo_
+ fondo_
yscale[0..7] @@ -324,69 +324,69 @@

Funciones obsoletas

d3d_set_projection_ext - d3d_set_projection_
+ d3d_set_projection_
ortho - d3d_set_projection_
+ d3d_set_projection_
perspectiva - d3d_transform_set_
+ d3d_transform_set_
identidad - d3d_transformación_
+ d3d_transformación_
set_translation - d3d_transform_set_
+ d3d_transform_set_
escala - d3d_transformación_
+ d3d_transformación_
set_rotation_x - d3d_transform_set_
+ d3d_transform_set_
rotación_y - d3d_transformación_
+ d3d_transformación_
set_rotation_z - d3d_transform_set_
+ d3d_transform_set_
eje_de_rotación - d3d_transformación_
+ d3d_transformación_
add_translation - d3d_transform_add_
+ d3d_transform_add_
escala - d3d_transformación_
+ d3d_transformación_
add_rotation_x - d3d_transform_add_
+ d3d_transform_add_
rotación_y - d3d_transformación_
+ d3d_transformación_
add_rotation_z - d3d_transform_add_
+ d3d_transform_add_
eje_de_rotación - d3d_transformación_
+ d3d_transformación_
stack_clear - d3d_transform_stack_
+ d3d_transform_stack_
vacío - d3d_transformación_
+ d3d_transformación_
stack_push - d3d_transform_stack_
+ d3d_transform_stack_
pop - d3d_transformación_
+ d3d_transformación_
stack_top - d3d_transform_stack_
+ d3d_transform_stack_
descartar d3d_transform_vertex - d3d_light_define_
+ d3d_light_define_
ambiente - d3d_light_define_
+ d3d_light_define_
dirección d3d_light_define_point d3d_light_enable d3d_primitive_begin - d3d_primitive_
+ d3d_primitive_
begin_texture @@ -397,24 +397,24 @@

Funciones obsoletas

d3d_vertex_texture - d3d_vertex_texture_
+ d3d_vertex_texture_
color - d3d_vertex_texture_
+ d3d_vertex_texture_
color d3d_vertex_normal - d3d_vertex_normal_
+ d3d_vertex_normal_
color - d3d_vertex_normal_
+ d3d_vertex_normal_
color - d3d_vertex_normal_
+ d3d_vertex_normal_
textura - d3d_vertex_normal_
+ d3d_vertex_normal_
color_de_la_textura - d3d_vertex_normal_
+ d3d_vertex_normal_
textura_color d3d_draw_block d3d_draw_cylinder @@ -434,38 +434,38 @@

Funciones obsoletas

d3d_model_draw - d3d_model_primitive_
+ d3d_model_primitive_
comenzar - d3d_model_
+ d3d_model_
fin_primitivo d3d_model_vertex - d3d_model_vertex_
+ d3d_model_vertex_
color - d3d_model_vertex_
+ d3d_model_vertex_
color - d3d_model_
+ d3d_model_
vertex_texture - d3d_model_vertex_
+ d3d_model_vertex_
color_de_la_textura - d3d_model_vertex_
+ d3d_model_vertex_
textura_color - d3d_model_vertex_
+ d3d_model_vertex_
normal - d3d_model_
+ d3d_model_
vertex_normal_color - d3d_model_vertex_
+ d3d_model_vertex_
normal_color - d3d_model_vertex_
+ d3d_model_vertex_
normal_texture - d3d_model_vertex_
+ d3d_model_vertex_
normal_texture_color - d3d_model_vertex_
+ d3d_model_vertex_
normal_texture_colour d3d_model_block @@ -503,15 +503,15 @@

Funciones obsoletas

ver_velocidad_de_hecho view_vspeed - mostrar_poner_ventanas_
+ mostrar_poner_ventanas_
vertex_buffer_method - mostrar_obtener_ventanas_
+ mostrar_obtener_ventanas_
método_de_buffer_de_vértices - mostrar_poner_ventanas_
+ mostrar_poner_ventanas_
alternar_sincronización - mostrar_obtener_ventanas_
+ mostrar_obtener_ventanas_
alternar_sincronización room_set_view @@ -529,44 +529,44 @@

Funciones obsoletas

ads_enable ads_disable ads_move - ads_get_display_
+ ads_get_display_
anchura - ads_get_display_
+ ads_get_display_
altura - anuncios_intersticiales_
+ anuncios_intersticiales_
disponible - anuncios_intersticiales_
+ anuncios_intersticiales_
mostrar ads_setup - ads_engagement_
+ ads_engagement_
disponible - ads_engagement_
+ ads_engagement_
lanzar - ads_engagement_
+ ads_engagement_
activo ads_eventos ads_event_preload - ads_set_reward_
+ ads_set_reward_
callback - playhaven_add_
+ playhaven_add_
etiqueta_de_notificación - playhaven_hide_
+ playhaven_hide_
etiqueta_de_notificación - playhaven_position_
+ playhaven_position_
etiqueta_de_notificación - playhaven_update_
+ playhaven_update_
etiqueta_de_notificación - pocketchange_display_
+ pocketchange_display_
recompensa - pocketchange_display_
+ pocketchange_display_
comprar @@ -576,27 +576,27 @@

Funciones obsoletas

facebook_login - facebook_request_
+ facebook_request_
publicar_permisos - facebook_request_
+ facebook_request_
leer_permisos - facebook_check_
+ facebook_check_
permiso facebook_status facebook_accesstoken facebook_user_id - facebook_graph_
+ facebook_graph_
solicitar facebook_dialog facebook_send_invite - facebook_post_
+ facebook_post_
mensaje facebook_logout - facebook_launch_
+ facebook_launch_
offerwall @@ -746,7 +746,7 @@

Funciones obsoletas

action_replace_sound - acción_reemplazar_
+ acción_reemplazar_
fondo action_if_empty action_if_collision @@ -836,7 +836,7 @@

Funciones obsoletas

action_draw_ellipse - action_draw_
+ action_draw_
elipse_gradiente action_draw_line action_draw_arrow @@ -862,7 +862,7 @@

Funciones obsoletas

gamemaker_registered - gamemaker_progamemaker_
+ gamemaker_progamemaker_
versión modo_seguro diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Index.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Index.htm index 4184924ec..c870b8714 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Index.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Index.htm @@ -3,8 +3,8 @@ - GML Visual - + {GML_Visual} + @@ -15,23 +15,23 @@ -

GML Visual

+

{GML_Visual}

GML Visual es el método de scripting visual para programar con el Lenguaje GameMaker (GML). Consiste en el uso de bloques de acción para construir la lógica del juego de una manera visual e intuitiva, y es una herramienta ideal para las personas que están aprendiendo a programar, o para las personas que tienen una inclinación más visual.

La sección GML Visual del manual se divide en los siguientes apartados:

-

-

+

 

+

 

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Overview/DnD_Overview.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Overview/DnD_Overview.htm index 8c21ab5cd..1e28bb42c 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Overview/DnD_Overview.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Overview/DnD_Overview.htm @@ -3,8 +3,8 @@ - Resumen visual de GML - + Resumen de {GML_Visual} + @@ -14,13 +14,13 @@ -

Resumenvisual de GML

-

GML Visual es una herramienta de scripting visual que puede utilizarse para crear tus juegos sin tener que escribir ningún código. Esto no quiere decir que no estés programando código cuando utilizas GML Visual, ya que lo haces, sólo que tu código se crea y se presenta de forma visual utilizando "bloques" de acciones en lugar de texto. Las acciones son simplesexpresiones osentencias que pueden "encadenarse" para que una instancia de un object haga algo cuando se coloca en un room. Por ejemplo, podrías tener una acción en un Evento de Creación para mover una instancia en una dirección aleatoria, y otra acción en un Evento de Colisión para hacer que rebote en las cosas con las que colisiona (para más información sobre los diferentes eventos disponibles y cómo funcionan juntos, ver la sección de Eventos de Objeto).

-

La imagen de arriba muestra un típico object abierto en un espacio de trabajo para ser editado. Tiene una ventana "Evento" y una ventana "Código" encadenadas, y en la ventana de código se puede ver donde hemos construido nuestro GML Visual. Veamos un poco más de cerca esta ventana y veamos qué opciones están disponibles para nosotros:

-

A continuación puede encontrar más información sobre cada una de las secciones mostradas:

+

Resumen de {GML_Visual}

+

GML Visual es una herramienta de scripting visual que puede utilizarse para crear tus juegos sin tener que escribir ningún código. Esto no quiere decir que no estés programando código cuando utilizas GML GML Visual, ya que lo haces, sólo que tu código se crea y se presenta de forma visual utilizando "bloques" de acciones en lugar de texto. Las acciones son simplesexpresiones osentencias que pueden "encadenarse" para que una instancia de un object haga algo cuando se coloca en un room. Por ejemplo, podrías tener una acción en un Evento de Creación para mover una instancia en una dirección aleatoria, y otra acción en un Evento de Colisión para hacer que rebote en las cosas con las que colisiona (para más información sobre los diferentes eventos disponibles y cómo funcionan juntos, ver la sección de Eventos de Objeto).

+

La imagen de arriba muestra un típico object abierto en un espacio de trabajo para ser editado. Tiene una ventana "Evento" y una ventana "Código" encadenadas, y en la ventana de código se puede ver donde hemos construido nuestro GML Visual. Veamos un poco más de cerca esta ventana y veamos qué opciones están disponibles para nosotros:

+

A continuación puede encontrar más información sobre cada una de las secciones mostradas:

Fichas de eventos

-

Cuando añades un evento a tu object, se abre una nueva pestaña en la ventana de código para mostrar el contenido de ese evento. Puedes añadir varios eventos y tener varias pestañas abiertas al mismo tiempo, cambiando entre ellas y editándolas como quieras. También puedes cerrar las pestañas en cualquier momento para reducir el desorden (si seleccionas de nuevo el evento en object se volverán a abrir), y puedes hacer clic en y arrastrar la pestaña fuera de la ventana a su propia ventana de código, en cuyo caso el cierre de object o de la ventana de código no cerrará la nueva ventana. Las pestañas también se pueden arrastrar a la izquierda o a la derecha para reordenarlas.

+

Cuando añades un evento a tu object, se abre una nueva pestaña en la ventana de código para mostrar el contenido de ese evento. Puedes añadir varios eventos y tener varias pestañas abiertas al mismo tiempo, cambiando entre ellas y editándolas como quieras. También puedes cerrar las pestañas en cualquier momento para reducir el desorden (si seleccionas de nuevo el evento en object se volverán a abrir), y puedes hacer clic en y arrastrar la pestaña fuera de la ventana a su propia ventana de código, en cuyo caso el cierre de object o de la ventana de código no cerrará la nueva ventana. Las pestañas también se pueden arrastrar a la izquierda o a la derecha para reordenarlas.

Resumen de la acción

@@ -30,17 +30,17 @@

Resumenvisual de GML

Espacio de trabajo del bloque de acción

-

Esta área workspace es donde se arrastran las acciones desde la caja de herramientas para crear su código GML Visual. Haga clic en en una acción y arrástrela a esta área para añadirla a la lista de acciones y editarla. La mayoría de las acciones tienen variosargumentos (parámetros) que puede establecer, y la mayoría también tomará palabras clave, variables de instancia, o incluso funciones GML - por ejemplo, puede llamar a la acción Establecer dirección y utilizar la función GML random(val) para establecer una dirección aleatoria.

+

Esta área workspace es donde se arrastran las acciones desde la caja de herramientas para crear su código GML Visual. Haga clic en en una acción y arrástrela a esta área para añadirla a la lista de acciones y editarla. La mayoría de las acciones tienen variosargumentos (parámetros) que puede establecer, y la mayoría también tomará palabras clave, variables de instancia, o incluso funciones GML - por ejemplo, puede llamar a la acción Establecer dirección y utilizar la función GML random(val) para establecer una dirección aleatoria.

A medida que añada bloques de acción a su código, se "encadenarán" visualmente para indicar el orden en que se producirán las diferentes acciones, aunque la forma en que se cree esta cadena dependerá del bloque inicial que se haya utilizado. Por ejemplo, un bloque If Variable tendrá dos cadenas - una a los bloques que deben ser llamados si la condición que se comprueba es true y luego el siguiente bloque después de eso. Para obtener más información sobre la construcción de bloques de acción en el código, consulte las secciones vinculadas a continuación.

-

Mientras estás en el bloque de acciones workspace, puedes mantener pulsado el botón central del ratón para desplazarte y la rueda del ratón para desplazar la lista de acciones hacia arriba o hacia abajo. Si mantienes pulsado mientras mueves la rueda del ratón, la vista se desplazará hacia la izquierda/derecha, y si mantienes pulsado / y mueves la rueda del ratón, la vista se acercará y alejará, permitiéndote ver más de la workspace con las acciones. Puedes hacer clic en en cualquier acción de la lista de acciones de la izquierda para centrarte en esa acción, restableciendo el zoom y la posición. También puedes cambiar el tamaño de los bloques de acción moviendo el ratón hacia los bordes del bloque y luego -cuando el cursor cambie- arrastrando en la dirección que desees.

-

También puede hacer clic con el botón derecho del ratón en cualquier lugar de GML Visual workspace para que aparezca el menú RMB, que se explica en detalle aquí.

+

Mientras estás en el bloque de acciones workspace, puedes mantener pulsado el botón central del ratón para desplazarte y la rueda del ratón para desplazar la lista de acciones hacia arriba o hacia abajo. Si mantienes pulsado mientras mueves la rueda del ratón, la vista se desplazará hacia la izquierda/derecha, y si mantienes pulsado / y mueves la rueda del ratón, la vista se acercará y alejará, permitiéndote ver más de la workspace con las acciones. Puedes hacer clic en en cualquier acción de la lista de acciones de la izquierda para centrarte en esa acción, restableciendo el zoom y la posición. También puedes cambiar el tamaño de los bloques de acción moviendo el ratón hacia los bordes del bloque y luego -cuando el cursor cambie- arrastrando en la dirección que desees.

+

También puede hacer clic con el botón derecho del ratón en cualquier lugar de GML Visual workspace para que aparezca el menú RMB, que se explica en detalle aquí.

Caja de herramientas

-

La caja de herramientas es donde se almacenan todas las acciones de GML Visual, con diferentes secciones que contienen colecciones (bibliotecas) de acciones que son similares o están relacionadas. Cada colección de acciones está relacionada con un tema específico o un propósito común y basta con hacer clic en y arrastrar la acción requerida de la caja de herramientas al bloque de acciones workspace para añadirla al evento actual. Para simplificar las cosas -ya que hay muchas acciones- puedes utilizar la barra de "Búsqueda" de la parte superior para buscar una acción específica o para filtrar las acciones visibles (escribe "dibujar", por ejemplo, para obtener todas las acciones de dibujo), y también puedes hacer clic en y arrastrar los iconos de cualquier biblioteca a tu carpeta de favoritos para mantener juntas las acciones más utilizadas. Esto es especialmente útil si hay ciertas cosas que vas a hacer una y otra vez. La carpeta de favoritos puede borrarse haciendo clic en el pequeño icono de la "papelera".

-

Para ver una lista completa de las acciones disponibles, así como los argumentos que toman y cómo se pueden encadenar, consulte la sección de referencia visual de GML.

-

Puede utilizar el botón derecho del ratón sobre cualquier acción de la caja de herramientas para abrir el siguiente menú:

+

La caja de herramientas es donde se almacenan todas las acciones de GML Visual, con diferentes secciones que contienen colecciones (bibliotecas) de acciones que son similares o están relacionadas. Cada colección de acciones está relacionada con un tema específico o un propósito común y basta con hacer clic en y arrastrar la acción requerida de la caja de herramientas al bloque de acciones workspace para añadirla al evento actual. Para simplificar las cosas -ya que hay muchas acciones- puedes utilizar la barra de "Búsqueda" de la parte superior para buscar una acción específica o para filtrar las acciones visibles (escribe "dibujar", por ejemplo, para obtener todas las acciones de dibujo), y también puedes hacer clic en y arrastrar los iconos de cualquier biblioteca a tu carpeta de favoritos para mantener juntas las acciones más utilizadas. Esto es especialmente útil si hay ciertas cosas que vas a hacer una y otra vez. La carpeta de favoritos puede borrarse haciendo clic en el pequeño icono de la "papelera".

+

Para ver una lista completa de las acciones disponibles, así como los argumentos que toman y cómo se pueden encadenar, consulte la sección de Referencia visual de GML.

+

Puede utilizar el botón derecho del ratón sobre cualquier acción de la caja de herramientas para abrir el siguiente menú:

GML Visual Overview Screen

Aquí tienes las siguientes opciones:

-

+

 

Las siguientes páginas profundizan un poco más en cómo construir el código de los bloques de acción, así como en cómo establecer el alcance de las acciones para que afecten a diferentes cosas dentro de tu proyecto y otros detalles importantes:

-

-

-

+

 

+

 

+

 

-

Referenciavisual de GML

-

Esta sección del manual enumera todas las diferentes acciones disponibles cuando se utiliza GML Visual para programar su juego. A continuación puedes encontrar cada una de las diferentes bibliotecas de acciones disponibles en object GML Visual Toolbox, y dentro de cada sección de la biblioteca se explican las acciones individuales, junto con ejemplos de uso.

+

Referencia de GML Visual

+

Esta sección del manual enumera todas las diferentes acciones disponibles cuando se utiliza GML Visual para programar su juego. A continuación puedes encontrar cada una de las diferentes bibliotecas de acciones disponibles en object GML Visual Visual Toolbox, y dentro de cada sección de la biblioteca se explican las acciones individuales, junto con ejemplos de uso.

-

+

 

Aparte de las bibliotecas de acciones anteriores, también tienes una biblioteca de favoritos -que es una sección especial de la caja de herramientas donde puedes arrastrar acciones y así tener a mano todas las que más utilizas- y también está la biblioteca de acciones utilizadas recientemente, que contendrá las últimas 5 acciones que has utilizado:

Favourite and Recent Libraries

-

-

-

+

 

+

 

+

 

Acciones multijugador en retroceso

Las acciones de retroceso se utilizan para hacer juegos multijugador utilizando el sistema de retroceso de GameMaker.

-

Para una introducción, ver: Rollback Multiplayer
-
+

Para una introducción, ver: Rollback Multiplayer
+
Para una lista de variables utilizadas con el sistema de Rollback, ver: Variables de retroceso

Las siguientes acciones se proporcionan para el multijugador Rollback:

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Destroy_Time_Source.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Destroy_Time_Source.htm index 808d70535..071e723a0 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Destroy_Time_Source.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Destroy_Time_Source.htm @@ -35,7 +35,7 @@

Argumentos:

Ejemplo:

-


+


Esto comprueba si existe una Fuente de Tiempo, y si lo hace, la destruye.

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Get_Children.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Get_Children.htm index f85c570e7..f70fd1bc9 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Get_Children.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Get_Children.htm @@ -43,7 +43,7 @@

Argumentos:

Ejemplo:

-


+


Esto obtiene los hijos de una Fuente de Tiempo, y loops a través del array para destruir cada Fuente de Tiempo hija.

Al final destruye la Fuente del Tiempo matriz.

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_Exists.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_Exists.htm index 5adee3f96..71e1595aa 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_Exists.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_Exists.htm @@ -38,7 +38,7 @@

Argumentos:

Ejemplo:

-


+


Esto comprueba si existe una Fuente de Tiempo, y si lo hace, la destruye.

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_State.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_State.htm index 9cb014315..637ddd10a 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_State.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/If_Time_Source_State.htm @@ -43,7 +43,7 @@

Argumentos:

Ejemplo:

-


+


Este bloque de código se ejecutaría idealmente en un evento de pulsación de tecla.

Comprueba si el estado de una Fuente de Tiempo es "activo", y en ese caso, pausa esa Fuente de Tiempo.

Sin embargo, si el estado es "pausado", se inicia de nuevo la Fuente de Tiempo.

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Pause_Time_Source.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Pause_Time_Source.htm index 5ebef0fb8..46430453f 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Pause_Time_Source.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Pause_Time_Source.htm @@ -35,7 +35,7 @@

Argumentos:

Ejemplo:

-


+


Este bloque de código se ejecutaría idealmente en un evento de pulsación de tecla.

Comprueba si el estado de una Fuente de Tiempo es "activo", y en ese caso, pausa esa Fuente de Tiempo.

Sin embargo, si el estado es "pausado", reanuda la Fuente de Tiempo.

diff --git a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Resume_Time_Source.htm b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Resume_Time_Source.htm index 36d2c23e1..7e9151eb3 100644 --- a/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Resume_Time_Source.htm +++ b/Manual/contents/Drag_And_Drop/Drag_And_Drop_Reference/Time_Sources/Resume_Time_Source.htm @@ -34,7 +34,7 @@

Argumentos:

Ejemplo:

-


+


Este bloque de código se ejecutaría idealmente en un evento de pulsación de tecla.

Comprueba si el estado de una Fuente de Tiempo es "activo", y en ese caso, pausa esa Fuente de Tiempo.

Sin embargo, si el estado es "pausado", reanuda la Fuente de Tiempo.

diff --git a/Manual/contents/GameMaker_Language.htm b/Manual/contents/GameMaker_Language.htm index 98d485cdd..2697de5c7 100644 --- a/Manual/contents/GameMaker_Language.htm +++ b/Manual/contents/GameMaker_Language.htm @@ -3,7 +3,7 @@ - + Lenguaje GameMaker @@ -12,14 +12,14 @@ -

Lenguaje GameMaker

+

Lenguaje GameMaker

Puedes usar GameMaker Language para programar tus juegos de dos maneras diferentes: colocando bloques para "escribir" código visualmente, o escribiendo código manualmente.

La primera opción, GML Visual, es la más adecuada para los principiantes y los aficionados que quieren empezar a crear sus propios juegos rápidamente.

-

La segunda opción, Código GML, le permite aprovechar toda la potencia de GameMaker Language escribiendo su código manualmente.

-

Mientras que GML Visual es más fácil de empezar, GML Code sigue siendo un lenguaje de programación fácil de usar con potentes características(Funciones, Métodos, Estructuras y Constructores, etc.).

+

La segunda opción, GML Code, le permite aprovechar toda la potencia de GameMaker Language escribiendo su código manualmente.

+

Mientras que GML GML Visual es más fácil de empezar, GML Code sigue siendo un lenguaje de programación fácil de usar con potentes características (Funciones, Métodos, Estructuras y constructores, etc.).

Creación de scripts visuales/de código

-

Se le pide que elija entre GML Code y GML Visual al crear un nuevo evento Object, un nuevo Script asset, o cualquier otra cosa que resulte en la creación de un script:

-

Además de poder elegir entre GML Code y GML Visual, esta ventana contiene dos casillas de verificación:

+

Se le pide que elija entre GML Code y GML Visual Visual al crear un nuevo evento Object, un nuevo Script asset, o cualquier otra cosa que resulte en la creación de un script:

+

Además de poder elegir entre GML Code y GML Visual, esta ventana contiene dos casillas de verificación: