Bueno gente, el motivo de esta clase iba a ser solo las variables pero de extra también añadiré otras cosas por que sino se hará muy corta la clase.VARIABLES y IF - ELSELamentablemente para ustedes xD no pueden saber variable si no saben "IF - ELSE", así que mientras explico variable voy a escribir sobre el IF - ELSE y para finalizar los extras, 2 códigos GML, explicación y en qué evento se los coloca correctamente.-Bien sin irnos más del tema pasemos a las variables :3-
Las variables son como cápsulas que encierran información, cuando declaras una variable, después de ponerle un nombre, puedes ponerle un valor, pongamos de ejemplo "5", ejemplo:
Nombre de variable = Num
Valor de variable = 5
Creen un objeto cualquiera o usen el de la clase de los movimientos hacia los lados y creen un evento "create" y en acciones vallan a la libreria "control", arrastren la acción "Set Variable" (un cuadradito celeste con "VAR" escrito en azul), una vez la arrastren les pedirá un nombre y para que se les hagan mas simple pongan de nombre "Num" y valor "5"
Muy importante: A la hora de "nombrar" estas variables el nombre tiene la misma importancia que la contraseña de Facebook por poner un ejemplo, "Num" no es lo mismo que "num" el poner mal el nombre de una variable en una acción lleva al error de que no se encuentra la variable y te sacaría del juego.
-Listo, nuestra variable se creó :3, ésta variable es "Local" lo que significa que solo podrá ser utilizada en el objeto que fue creada. En caso de querer llamar la variable en otro objeto, ésta no se encontrará y dará error. Ahora utilicemos de una manera simple esta variable c:-
Ahora creen un evento "Key release (UP)", vallan a la librería "move" y arrastren la acción "horizontal speed" dentro de la acción key release que creamos antes y pónganle un número que quieran, yo le puse 4, es solo para probar una cosa :3, ahora creen un room o si ya lo tienen pongan a su objeto en cualquier parte del mismo.
-Si ejecutan el juego es obvio que al dejar de apretar la tecla (UP - Flechita hacia arriba), el objeto adquiere una velocidad vertical de 4 o el número que le hayan puesto y iniciará su marcha, pero ahora vamos a hacer que la acción se ejecute solamente si la variable "Num" es igual a "0" y para eso vamos a hacer lo siguiente, usaremos el IF(Sí), hagan esto, siguiendo con las acciones del key release, vallan a la librería control y arrastren "var" pero la que es media circular "esta es un "IF" que comprueba valores de variables, todas las acciones q son medias circulares es por que comprueban un valor y estas se les llama "IF"", cuando arrastren la acción les saltara la siguiente ventana:
En "Variable" tenemos que poner el nombre de la variable que queremos que esté en comprobación, en nuestro caso la variable es "Num"((recuerden respetar las mayúsculas)), ahora en valor ponemos el número que queremos que sea necesario para activar la acción, yo le voy a poner 0 y mas abajo hay 2 opciones que explicaré ahora, el "NOT", si esa casilla está marcada significa que lo que hayas puesto se voltea, es decir, normalmente si la variable Num es igual a 0 entonces se ejecuta la acción, pero NOT hace que se ejecute la acción si Num es cualquier numero menos 0 xD da vuelta las cosas, por ahora lo dejaremos sin marcar, ahora otra cosa son las 3 opciones de comparación "equal to, smaller than y larger than", La que usaremos es "Equal To (igual a)" que en el ejemplo hará que la acción se ejecute si el valor de la variable es 0. "Smaller Than(menor que)" hará que la acción se ejecute si el valor de la variable es menor a 0 y "Larger Than" la ejecutará si el numero de la variable es mayor que 0.
-Sin tantos rodeos volvamos a lo nuestro, esto quedaría así "variable = Num // value = 0 // equal to //-
Ahora para asociar acciones dentro de el "IF" vamos a usar las flechitas de la siguiente manera:
es necesario abrir el IF con la flechita hacia arriba y también es necesario cerrarlo con la flechita hacía abajo, si ésto no se hace entonces el if abarcará mas acciones que no queremos xDD, esta casi todo listo para probar cómo funciona ésto pero tenemos un inconveniente, no hay ningúna acción que altere el valor inicial de la variable "Num" lo que causaría que al soltar la tecla de felcha hacía arriba no pasaría nada, vamos a cambiar ésto c:, fuera de la acción del IF pongamos de nuevo "Set variable" con el mísmo nombre "Num" y de valor "-1" activemos la casilla "Relative" y listo, lo que hace relative es que le quite o le sume en caso de no ser un numero negativo el valor a la Variable que ya habíamos creado antes "Num", en caso de no marcar la casilla relative entonces Num tendría un valor de -1:
-Listo, está todo listo para probarlo, ¿Saben lo que pasará no?, la quinta vez que soltemos la tecla de flecha hacia arriba iniciará su recorrido vertical con la velocidad asignada y esto es posible por que si bien el IF requiere de un evento especial para ejecutar la acción, el evento anterior no lo necesita, cada vez que soltemos la tecla arriba Num bajará 1 numero, eso causará que después de apretar 5 veces la tecla hacia arriba en algún momento el valor se volverá 0 y ejecutará el código dentro del IF, si se sigue apretando la tecla seguirá bajando el valor de Num "-1,-2,-3, etc", es solo una prueba de cómo podríamos utilizar las variables, tienen muchas formas de utilizarse pero para esta clase solo esos ejemplos simples c:, hay una acción que se llama "ELSE" también aparece en la librería control, se emplea igual al if en el sentido de las flechitas, pero el ELSE va debajo de la flechita que encierra el IF y sirve para accionar algo en caso de que el IF no se cumpla, es decir, si el IF falla con la confirmación o sea, si la condición del IF no se cumple pasa a accionar la acción que encierre "ELSE". (No se preocupen si no entienden bien, siempre pueden hacerme preguntas en éste tema y yo las aclararé bien c: )
-Por ahora no vamos a hacer nada con el ELSE, la pequeña clase de variables termino pero quiero dejarles algunas cosas en claro abajo:
1* El valor de la variable no solo pueden ser números solos, una variable puede ser "true o false" EJ: Var: Num // Val: true (y en el if debería ir algo como "IF Num = true o false /entonces se ejecuta la acción/)
2* Además una variable puede ser la suma de otras 2 variables mas, creemos imaginariamente 3 variables:
Num1 = 5
Num2 = 10
Num3 = Num1+Num2
(por si tienen dudas, no, no se activa la casilla "relativo")
3* Recuerdas que dije que esa variable era local?, usa "global" un punto "." y pegado el nombre de la variable, esto declara una variable que se puede utilizar en cualquier objeto pero para llamarla desde otro lugar es necesario también añadir el "global." para eso EJ:
Var = global.glaizer
Val = true
//
IF (global.glaizer = true) (imaginen que este if es desde otro objeto,)
NOTA IMPORTANTE: Recomiendo crear un objeto no visible, no solido y sin sprite, ponerle "Depth -500000" para que se cree primero y dentro de ese objeto en un evento create en donde contenga todas las variables globales que quieran tener en su juego. (otras cosas importantes, recomiendo marcar la casilla "persistente" en el objeto y crucial, no se olviden de colocar este objeto de controles dentro del room por q sino nada de lo que esté dentro de él se va a ejecutar xDD) No quiero hacerla larga por eso solamente les digo lo que tienen q hacer y no entro mucho en detalles.
-Creo que ya está, por ahora dejaré las variables por acá y recuerden que pueden preguntar abajo cualquier duda-
Ahora los códigos, los 2, por si no se acuerdan la acción para escribir los códigos está en la librería control y "Execute code", dentro ponen lo que les digo ahora y en qué evento deben estar.
El objeto mira hacía el mouse.Esta acción tiene que ir en el evento "steps" y el código es el siguiente:
- Código:
image_angle = point_direction(x,y,mouse_x,mouse_y);
Si pones este código simple en steps lograrás que tu personaje siempre mire hacia el mouse pero ten en cuenta algo "importante", el sprite del objeto tiene que estar por defecto mirando hacia la derecha, si estuviese mirando hacia la izquierda por poner un ejemplo, entonces miraría con la espalda al mouse xDDD, también tiene que estar bien centrado en el punto medio del objeto. (mouse_x determina el punto exacto del mouse en una linea horizontal y mouse_y el vertical) EJ:
Es muy importante el "x" y "y" en game maker ya qué sabremos en dónde estaremos parados siempre c:
Disparar una bala desde la posición exacta de un objeto.[left]
Esta acción tiene que ir en el evento "steps" y antes que nada creen su objeto de bala:
Creen un objeto con el nombre "obj_bala" y de sprite ponganle el dibujo de la bala que quieran disparar.
- Código:
if (mouse_check_button_pressed(mb_left))
{
bala = instance_create(x,y,obj_bala);
bala.direction = point_direction(x,y,mouse_x,mouse_y);
bala.speed = 15;
}
El código es modificable por ejemplo "bala.speed" determina la velocidad con la cual va a salir la bala, le puse 15 pero es modificable, mas de 40 no lo recomiendo ya que sería muy rápido, tambien pueden ponerle otro nombre a su bala como "obj_bullet" pero entonces deberán cambiar el "instance_create" y dejarlo así = "bala = instance_create(x,y,obj_bullet);"
Si quieren explicaciones de por qué pasa tal cosa son libres de preguntar en este post :3 TAREA TAW: Utilizar una variable de valor "False o True" y darme cualquier ejemplo de cómo utilizarla correctamente para cualquier fin
(+50 rep) Ésta tarea es extra, quiero que me muestren sus personajes disparando un tipo de proyectil hacia la posición del mouse.
(+15 rep) Y por ultimo, las tareas deben ser entregadas en formato "proyecto", para que yo pueda abrirlas en mi GM, no se aceptan ejecutables del juego.
Hoy a las 00:45 por Quincho96
» Experimento Scaver [ZERG]
Ayer a las 22:27 por Quincho96
» Grifo Tyrant [Virus-T]
Ayer a las 22:25 por Quincho96
» TEMA FLOOD
Ayer a las 11:11 por FlairDreamer
» ¿Que música están escuchando?
Ayer a las 11:01 por FlairDreamer
» Presentacion y Preguntas
Ayer a las 10:57 por FlairDreamer
» Rise of Cults 2 Bot (Beta abierta)
Ayer a las 00:56 por XleandroX
» Nueva Ciudad Sporepedia 2024 (Historia por partes)
Sáb 23 Nov 2024, 17:03 por Mozokas
» El Iceberg Definitivo del Foro [PROYECTO COMUNITARIO]
Miér 20 Nov 2024, 21:20 por Mathaloz
» Experimento Grifo Fantasmal [SINDROME DEL 23]
Miér 20 Nov 2024, 18:10 por Quincho96
» BlueXYZ
Dom 17 Nov 2024, 00:47 por Max
» Hola
Sáb 16 Nov 2024, 23:35 por FlairDreamer
» Los experimentos del Dr. Breincrox, parte 2
Sáb 16 Nov 2024, 23:23 por FlairDreamer
» Aldeano Mini Carro [O5] [T] [♫]
Vie 15 Nov 2024, 18:38 por Quincho96
» [set]: Criaturas de Maenard
Vie 15 Nov 2024, 18:35 por Quincho96
» R3-XP10R3 [AI3] [♫]
Vie 15 Nov 2024, 16:17 por Quincho96
» Experimento Scarver-T [Virus-T]
Jue 14 Nov 2024, 14:27 por Quincho96
» Caballo [3lite vs. Xhaps] [2]
Jue 14 Nov 2024, 11:50 por Sirillium64
» Esidisi's Tower [O4] [E]
Jue 14 Nov 2024, 11:47 por Sirillium64
» Problema con los pies de DI y otros mods
Miér 13 Nov 2024, 20:10 por FlairDreamer
» Las partes robóticas en mi spore no funcionan bien
Miér 13 Nov 2024, 20:08 por FlairDreamer
» ¿Cómo recuperar una criatura borrada?
Miér 13 Nov 2024, 19:22 por FlairDreamer
» Una decada despues!
Mar 12 Nov 2024, 22:31 por Endy