Conectarse
Los posteadores más activos del mes
Quincho96 | ||||
thescientist9393 | ||||
Josgrox | ||||
Max | ||||
FlairDreamer | ||||
Davitroon | ||||
XleandroX |
Creación Aleatoria
Hora Mundial
GameMaker (Clase*4 - Variables y Extra)
Sporepedia 2 :: Spore World :: Off-topic :: Entretenimiento
Página 3 de 5. • Comparte
Página 3 de 5. • 1, 2, 3, 4, 5
GameMaker (Clase*4 - Variables y Extra)
Recuerdo del primer mensaje :
Escuela
GameMaker
Bienvenidos a la introducción a GameMaker: Es un programa con el cuál podemos crear nuestros juegos como muchos sabrán , está hecho para programadores y no programadores, es gentil con el usuario en cuanto a entendimiento pero eso sí, el programa está al 100% en inglés, GameMaker se utiliza para crear juegos 2D principalmente pero tiene un motor muy poco recomendable y dificil de usar en 3D (eso no aprenderemos acá), bien, eso es todo.
Para las clases se utilizará GameMaker 8.0 versión PRO (Es una versión no limitada), pueden enviarme un MP pidiendome el link de GameMaker aún qué los de TAW lo recibirán sin pedírmelo.
- Clase 1 Interface:
- 1: El papelito es para crear un nuevo proyecto. Ctrl+N (Comando Rápido)Ufff, esto me costó un par de horas hacer , espero que entusiasme a la gente. Si has leído toda la clase te felicito, solo tú sabes si lo hiciste .
2: La carpeta con la flechita es para abrir un proyecto ya existente. Ctrl+O
3: Sirve para guardar el proyecto de una forma rápida. Ctrl+S
4: Sirve para crear un ejecutable de tu juego, lo que se hace para que el juego esté listo para jugar en cualquier pc con tan solo un doble click.
5: Éste no lo pensaba Incluir pero que va..., Sirve para publicar tu actual proyecto/juego en la página oficial de GameMaker (GM) "YoYo Games"
6: Prueba tu juego directamente desde el proyecto y ejecútalo como si lo hicieras desde el ejecutable creado del punto "4". F5
7: Ejecuta el juego en modo de prueba, es ideal para probar fallos ya que tiene opciones de reset de juego, detener el juego entre otras menos importantes. F6
8: Sprites, son imagenes 2D que se pueden crear, importar o bien agarrar uno ya existente que el mismo GM ofrece. Son una parte fundamental en GM ya que nuestros juegos no podrían funcionar sin ellos, son los "personajes" en nuestros juegos, son los árboles, las cajas, el arte 2D de nuestros objetos de juego. Shift+Ctrl+S
9: Qué serían nuestros juegos sin sus pistas de sonido, sirve para importar archivos de sonido que posteriormente podremos incluir en nuestros juegos (Sporta: mp3 & wav). Shift+Ctrl+U
10: Crear un "Background" la imagen de fondo, dónde no haya un objeto, se podrá ver el fondo (Background), puedes hacerlo desde el mismo GM con un estilo paint xDD o bien importar un background hecho en otro programa de dibujo, (Mucho cuidado con usar Photoshop para background, aveces los archivos son muy grandes o pesados y GM simplemente se niega a reconocerlo como Background, tira errores a la hora de ejecutar el juego o otros problemas por la misma causa. ) Shift+Ctrl+B
11: Scripts, GM utiliza su propio lenguaje de programación (GML) y en ésta página se pueden voltear los códigos, GML es parecido a JS (JavaScript), los códigos creados en estas páginas se puede añadir a un objeto para que cumplan su función. Shift+Ctrl+C
12: Objetos, son los materiales físicos del juego, aún que pueden ser utilizados para otros propósitos, un objeto aliado a un sprite puede transformarse en un personaje, en un árbol, un barril, etc. Se podría hacer que al apretar una tecla el sprite del objeto cambie a otro sprite dando una animación de salto o caminata por ejemplo, pero para eso deben existir los sprites animados con estas acciones. Por otro lado, se pueden utilizar los objetos para activar códigos al inicio del juego, se crea un objeto sin colisión y sin sprite y en el juego no se ve, pero si se le añade códigos o acciones a ese objeto, los mismos se ejecutarán. Shift+Ctrl+O
13: Sirve para crear un "Escenario o Cuarto" al igual que para crear un objeto físico en el juego es necesario un sprite, el Escenario depende de un Background. En el escenario se puede volcar los objetos y es como un tetris en donde armamos el terreno con los objetos creados y el background, se pueden crear mas de un escenario y contarían como "niveles", con códigos o acciones se puede lograr que entrado a un cierto lugar o cumpliendo un cierto requisito, puedas avanzar al siguiente Escenario escogido en el código. Shift+Ctrl+R
14: Aquí puedes poner la info a dar sobre tu juego. Shift+Ctrl+I
15: Por último tenemos las "Opciones Globales del juego", en esta opción podemos cambiar algunas opciones que afectaran a todo el juego como por ejemplo: Decide si la flecha del mouse va a ser o no visible en el juego, si el juego se ejecutará en Pantalla completa o en Ventana, entre otras opciones. Shift+Ctrl+G
En la próxima clase hablaremos sobre los "Sprites" mas a fondo y trataremos de crear 1 con por lo menos 1 animación.
- CLASE 2 Sprites:
Éste es un Sprite y tiene animación "stand" de quedarse quieto para los que no saben, por ahora me servirá para demostrar lo que quiero, yo lo apode "twenty three" no tiene nada que ver con wig se los juro, si se preguntan el por qué del fondo negro bueno... no es fácil quitarlo.
ETAPA 1Bien, comencemos entonces como en la anterior clase acá se irán mencionando desde el inicio las cosas.
Ni bien abramos "Create Sprite" nos aparecerá la ventana que especifiqué arriba con recuadros y números para explicar mas rápido y fácil
1 Edit Sprite: Más adelante en la clase voy a mostrar las herramientas emergentes cuando seleccionamos esta casilla, pero por ahora diré que sirve para dibujar el sprite y editarlo además animarlo.
2 Show: Es para pasar o volver los cuadros de la animación y eso que dice "11" son los fotogramas de la animación, cada dibujo que hice para para animarlo. En palabras mas simples, pasa de imagen en imagen que fueron utilizadas para animar el sprite y indican cuantos dibujos hay en la animación.
3 Origin: Es el punto de gravedad de tu sprite, indica el centro y influye en por ejemplo si quieres hacer rotar a tu sprite rotaría de la siguiente manera según el punto de origen:
Los círculos representan cómo rotará tu sprite, imaginen que es una carretera el círculo y sus sprites la recorren, si no centran bien en donde quieren el punto de origen pueden tener problemas mas adelante.
4 Modify Mask: Verás la siguiente ventana si entras:
Voy a comentarles que les conviene dejar tal cuál está está ventana pero antes hay que explicar algunas cosas, la mascara de colisión es esa sombra que cubre mi sprite, ésta sombra me está indicando la colisión de mi sprite, es decir, mi sprite sí es un objeto "solido" chocará contra otros objetos según la mascara de colisión que sin tocar nada cubre exactamente todo el sprite, es decir que la mascara copia la forma del sprite para una colisión perfecta pixel por pixel.
5 Precise Collision Checking: Con ésta casilla seleccionada la mascara copiará la forma del sprite para crear la colisión precisa pixel por pixel, deseleccionada formaría un cuadrado de colisión que cubrirá todo el sprite:
6 Separate Collision Mask: Recomiendo siempre tener esta casilla marcada ya que respeta la colisión pixel por pixel en cada animación, si ésta casilla no está marcada, la mascara de colisión cubrirá cada espacio por donde el sprite va a pasar con cada fotograma. Voy a explicarlo de manera mas simple para que entiendan bien , imaginemos un guerrero con un enemigo en frente, nuestro guerrero está visto de arriba y tiene una espada en la espalda, el rango gris muestra por dónde va a pasar la espada para llegar hasta el enemigo y también representa la máscara de colisión, ya que la espada va a recorrer ese camino:
Supongamos que esta animación de ataque mata al enemigo, si la casilla "Separate Collision Mask" esta desactivada, ni bien se inicie la animación de ataque el rango de todas las animaciones juntas cobrará vida, es decir, cuando empiece el primer fotograma la colisión va a ser el rango gris por lo cual ni bien comience el sprite estará tocando a su enemigo por lo que lo mataría al instante sin siquiera tocarlo con su espada, ahora con ésta casilla marcada no pasa esto, ya que la colisión es respetada cuadro por cuadro, es decir, nuestra espada realmente tendría que tocar a nuestro enemigo para que cuente como colisión, espero que se haya entendido .
Los sprites son todo un tema no?, pero aún hay más, debemos aprender lo mas importante, cómo crearlos editarlos y animarlos.
ETAPA 2Cuando entremos a "Edit Sprite" encontraremos lo siguiente (FAVOR DE AMPLIAR LA IMAGEN):
1: Crea un nuevo cuadro de animación/fotograma en blanco. Adicional: puedes apretar click "ctrl+c y ctrl+v" para copiar y pegar un fotograma ya existente. (muy recomendado)
2: Con la casilla "show preview" marcada, podrás ver la animación.
3: Determina la velocidad con la cual se ejecuta la animación para pre-visualizarla. (Ésto no afecta absolutamente en nada a la animación que va a tomar tu sprite a la hora de que esté "en juego", es totalmente independiente, en otras palabras el "speed" solo sirve para apreciar la animación en diferentes velocidad, no para cambiarla realmente.)
4: Transform sirve para hacer cosas como dar vuelta al lado contrario hacia donde miran todos los fotogramas, se puede hacer que un personaje que está mirando a la derecha mire a la izquierda y lo mejor es que el cambio va para todos los fotogramas. Con Image podemos editar aspectos como el color o agregarle sombras a cada uno de los fotogramas, también es útil.
5: Por último, el espacio donde nos muestran todas los fotogramas, imaginemos que recién empiezan en esto creen un nuevo fotograma indicado en el punto "1", elijan el Ancho para empezar y después la Altura del espacio que vamos a tener disponibles para trabajar, recomiendo que siempre el espacio sea considerablemente mas grande de lo que va a ser nuestro sprite, una vez creen les aparecerá 1 fotograma, denle doble click y les aparecerá esto:
No voy a dar muchas vueltas en éste asunto, es muy parecido a paint y remarque las herramientas que utilizo mas para hacer este tipo de cosas y a la derecha marque "opacidad" para el que no sepa, es la transparencia, cuanta menos opacidad mas débil será el lápiz o transparente como quieran llamarle lo mismo la goma. Más que nada remarco esta casilla por q varias veces me pasó que no escribía mi lápiz y después veo que la opacidad estaba a 0 xD.
Ahora si tienen 2 o más fotogramas, éstos se podrán desplazar en el mismo paint de GM xD, pasar de una imagen a otra para editarla rápidamente:
Las flechitas aparecen y podrán desplazarse entre fotogramas y editarlos rápidamente.
NOTA: Al llegar al último fotograma se vuelve al primero. (sé que pensaran que esto es para retrasados (? pero es para mi necesario enseñar bien )
Recomendaciones para la creación de sprites: Primero, Crea tu sprite con el Paint de GM "SIN COLOR" yo sé que quieres pintarlo y toda la cosa pero NO!, no lo pintes, una vez tengas tu personaje hecho ve atrás hasta donde está el espacio que muestran los fotogramas y seleciona con un click tu dibujo, copia(ctrl+c) y pega(ctrl+v). (Cuidado!, sí le haces click a un fotograma y pegas, el fotograma pegado va a estar un lugar antes del fotograma que seleccionaste, es decir, si seleccionas el primer fotograma y pegas el nuevo, la copia quedará primero. Esto se soluciona de una manera simple, una vez que pegues tu fotograma adelantalo una casilla adelante con la flechita azul de arriba), ahora ve al segundo fotograma y si quieres iniciar con una animación de su brazo derecho supongamos, borra ese brazo en el fotograma 2 y re-hazlo de una manera que te guste y así mismo copias el fotograma 2 y lo pegas para continuar con el movimiento del brazo, juega mucho con las flechitas que te permiten desplazarte y editar los fotogramas, puedes volver hacia atrás y comparar ese brazo por ejemplo si se mueve bien y volver, hazle zoom con la lupa siempre que puedas, se trabaja mucho mejor de cerca. Eso son todos los consejos que puedo darles por ahora, yo me despido con otra clase terminada
En la próxima clase hablaremos sobre los "Objetos", asignaremos un sprite a un objeto y lo moveremos con las flechitas hacia la derecha y izquierda.
TAREA TAW: Cread y mostradme un Sprite con su animación (Stand) (+20 rep) // siempre es mejor 2 que uno jejeje Cread otra animación de ataque que contenga por lo menos 4 fotogramas. (+25 rep)
- CLASE 3 Objetos y Primer Acción:
Bien, hoy aprenderemos más acerca de los "objetos", éste espacio me refiero a "objetos", es la parte mas compleja de GM y es que en base a éstos vamos a ser posibles todo, entre lo más importante, haremos que nuestro juego funcione. Bien, otra cosa importante " todo texto que esté de color azul, significa que no es obligatorio entender o aprender, se terminará aprendiendo tarde o temprano. Sin más que decir comencemos!!
ETAPA 1Para comenzar creemos un objeto con "shift+ctrl+o" o de las otras maneras que enseñé antes, una vez creado el objeto les aparecerá esa ventana que remarque como suelo hacer "con números" para que se haga mas cómodo todo.
1: Obviamente aquí va el nombre del objeto, pero lo que quiero dejar bastante en claro es lo siguiente: cuando crees un objeto, créalo con la insignia "obj_" seguido del nombre que quieras ponerle al objeto en mi caso "obj_TT", ésto es muy importante aún que al inicio parezca que no y ésto olvide decir antes, también se aplica a otras cosas que queramos crear como rooms (roo_) y sprites (spr_). Ésto hará algo así como guardar todos los objetos o el grupo de cosas que desees guardar en una clase de "librería", al ejecutar códigos más tarde, podes encontrar mas rapidos tus objetos, sprites o rooms, y para hacerlo, en la página donde se depositan los códigos se teclea "spr_ // obj_ o roo_" y aparece una lista de todos los sprites, objetos o rooms guardados con la insignia, no es obligatorio que sea "spr_" puede ser "taw_" si así lo prefieres, pero recomiendo usar las ya mencionadas antes.
2: Acá es donde le damos la capacidad de un sprite a un objeto, aprieten un click en donde estaría el nombre del sprite y les aparecerán todos los que hayan creado. Tambien podes editar el sprite seleccionado "edit" o crear uno nuevo "new".
3: Acá podemos manipular la visibilidad y la solidificación del objeto, si bien seleccionar solido no sirve para hacer chocar 2 objetos, sirve para separar solido de no solido y eso mas adelante con los códigos se puede utilizar muy bien como por ejemplo hacer un código para que nuestro personaje quede quieto al colisionar contra un "solido" ese código no funcionaría contra por ejemplo un objeto "humo" que sea un efecto pero no solido. Con visibilidad marcada el objeto se puede ver en el juego, sin ésta, solo estaría pero invisible.
4: Depth en palabras simples define qué objeto se creará en qué tiempo, es decir, si todos los objetos tienen Depth 0, se crearán al mismo tiempo, si un objeto tiene mayor número de depth que otro, se creará antes, también se puede utilizar números negativos (-1/-2/-3), en qué influye?, digamos que quieres crear una baldosa con un objeto visible pero no sólido y quieres que tu personaje la atraviese como si fuese un backgrownd, el número de la baldosa debe ser mayor a la de tu personaje por que de ser menor el de la baldosa, tu personaje al intentar atravesarla la atravesara pero por debajo de ésta xDDD.
5: Con ésta casilla marcada "persistent", el objeto se trasladará al siguiente room por más que este objeto persistente no esté en el siguiente room, recuerden, los rooms son algo así como piezas de los lugares, puedes saltarte de un room a otro con entrar a una puerta suponiendo algo. Pero por ahora no hablaremos más de esto ya que no lo utilizaremos en esta clase.
6: Mascara y pariente, como bien deben saber, siempre "Mask" se referirá a la mascara de colisión, recomiendo que lo dejen en "same as sprite" ya que toma la mascara original del sprite utilizado en el objeto, no creo que quieran pero si quieren pueden cambiar la mascara por la de otro sprite seleccionándolo. Pariente es algo así como "todo lo que le pasa a él me pasará a mi" puedes poner otro objeto como pariente de tu objeto y tódo lo que le pase al objeto que elegiste le pasará a tu objeto. Imagina que tienes un código que lo que hace es que cuando muera el jugador 1 y el jugador 2 la partida acabe y pierdan, si pones de pariente al jugador 2 y lo matan en el juego, tú también morirás.
7: Estos son las "herramientas", los iconos tienen funciones de código dentro y podemos arrastrarlos hasta "acción" si primero creamos un evento "add event", ahora mas adelante probaremos hacer que nuestro personaje se mueva hacia la izquierda y derecha con apretar las flechitas y adicionalmente les enseñaré 2 códigos simples de entender c:
8: Las librerías, tienen nombres "move, main1, main2, control, etc" éstas librerías se pueden encontrar en donde tengan istalado el juego y en la carpeta "lib", fácilmente puede presionar click derecho en el icono de game maker y ir a "abrir ubicación del archivo". Dentro de esta carpeta "lib" puedes no solo encontrar las librerías oficiales con sus acciones sino que hay gente que programa y crea sus íconos "sus propias librerías" puedes descargar de internet desde diferentes páginas solo con buscar un poco. Bien, estas librerías tienen Herramientas como ya dije antes y vamos a utilizarla a continuación para crear pero antes debes saber 2 conceptos "evento y acción"
ETAPA 2EVENTO: Evento es como el detonador de la acción, lo que hace que la acción se ejecute, como ejemplo, un evento podría ser "cuando apretes la tecla L" > (acción). El evento es el "cuando tal cosa se cumpla entonces la acción se ejecuta".
ACCIÓN: Si el evento se cumple entonces pasará todo lo que está puesto en acción, por ejemplo, (Evento: keyboard press "L") > (entonces mi personaje adquiere una velocidad horizontal de 4).
Sí entendiste lo anterior entonces ya puedes comenzar con implementar el evento y la acción
Paso 1: Primero selecciona "add event" marcada en verde en la primer imagen de la clase, te aparecerá lo siguiente:
Paso 2: Crea haz click en "Keyboard" y a continuación selecciona la tecla "left" que es la flecha izquierda del teclado.
Paso 3: Crea otro evento "Key Release" y vuelve a seleccionar "left".
Ya tenemos 2 eventos creados que aparecerán como bien ya te habrás dado cuenta, en la ventana de arriba de add event, entonces estamos así:
Paso 4: Elige la librería "Move" si es que ya no está seleccionada, hazle click izquierdo a la herramienta "Speed Horizontal" y arrástrala hasta la ventana debajo de "acciones", una vez hecho ésto, cambia la velocidad de 0 a -4, el número negativo hace que la velocidad horizontal sea hacia la izquierda que normalmente es hacia la derecha. Después verás 3 puntos arriba que te pediré que no los toques "Self, Other y Object" en otra oportunidad hablaré sobre esos 3 pero no vallan a meterle a ningún objeto que creen o sprite o lo que sea esos nombres y me refiero a "(self), (other), (object) tampoco (all)".
Con este paso lo que hacemos es que: cada vez que que apretemos o cuando quedemos presionando la tecla "flecha izquierda"(Evento) nuestro objeto gane una velocidad horizontal por -4(acción)
Si están haciendo la clase mientras la leen les voy a pedir lo siguiente: creen un room "Shift+Ctrl+R" y ahora seleccionen su objeto y coloquenlo dentro del room:
Paso 5: Elige tu objeto y colócalo en cualquier parte del room, ahora prueba tu juego en modo de prueba " "
En juego prueba apretar una vez la flecha izquierda, cuando la apretes o la quedes presionando "no importa", notarás que si sueltas la tecla el objeto se seguirá moviendo xDD, esto vamos a solucionarlo con el segundo evento que creamos "Key Release".
Paso 6: El evento Key Release se ejecuta cuando soltamos la tecla que en este caso es "left", hacemos exactamente lo mismo de arrastrar la herramienta "Speed Horizontal" sólo que la dejamos tal cual está, en "0", esto hará que la velocidad vertical sea igual a 0 cuando dejemos de presionar la tecla, lo que significa que deberíamos de quedar quietos cuando lo hagamos:
Todo lo que tienen que hacer para hacer lo mismo hacia la derecha es reemplazar valores, en el evento "Keyboard" seleccionen "Right en lugar de Left" y en su acción la velocidad vertical sería de 4. lo mismo con "Key Release" solo que lo único que tienen que cambiar es que se ejecute con "Right", el valor de la velocidad horizontal es de 0 también para la acción de éste.
Uffff, hemos terminado gente : , pero no nos despediremos sin antes enseñarles lo que les prometí, no esperen códigos super avanzados, mas adelante todos juntos vamos a adentrarnos en ese tema
Creen 2 eventos uno "Create" (cuando el objeto es creado la acción se ejecuta /el numero de "Depth" explocado en el número 4, influye en este evento/) y creen otro evento "Steps" (este evento ejecuta la acción siempre, en cada milésima de segundos de juego /les va a dar 3 opciones pongan la primera "steps")
Una vez creadas esos 2 eventos, seleccionen el evento "Create", seleccionen la librería "control" y arrastren la herramienta " Execute code " les abrirá ésto y pongan el mismo código ustedes:- Código:
image_speed = 0.2;
Este código lo que hace es cambiar la velocidad de la animación del sprite, en mi caso le reduje lo necesario para que no se ejecute tan rápido ya que tengo pocos fotogramas "11" y para que se ejecute fluido de la forma estándar tendría que tener muchos mas fotogramas
Ahora hagan lo mismo en steps pero pongan el siguiente código, este es un poco mas grande pero sirve muchísimo:- Código:
varTecDerecha = keyboard_check_direct (vk_right);
varTecIzquierda = keyboard_check_direct (vk_left);
if (varTecDerecha)
{
image_xscale = 1;
}
if (varTecIzquierda)
{
image_xscale = -1;
}
Ahora no tengo tiempo pero explicar esto técnicamente, pero lo que hace es voltear la imagen hacia la izquierda o derecha según la tecla de flechas presionada. Nota: en códigos como estos influye en dónde está el centro del sprite como lo explique una clase anterior. (prueben cambiar el sprite a otro centro para ver los problemas que causa que el centro no esté bien puesto.).
Variables, IF, Else.
TAREA TAW: Hacer que el personaje se mueva hacia todas las direcciones incluyendo arriba y abajo (+20 rep)
- CLASE 4 VARIABLES Y EXTRA:
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 - ELSE
Lamentablemente 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.
________________________________________
- Hazañas en Clases:
@Flairdreamer se ganó (+20 de Rep) por la entrega de la primer tarea de la clase 2 // también ganó (+25 de Rep) por presentar el segundo trabajo de la misma clase.
@Flairdreamer se ganó (+20 de Rep /+5 por rango (+25)) por la entrega de la tarea de la clase 3
@MaxyTM se ganó (+20 de Rep) por la entrega de la primer tarea de la clase 2.
Última edición por Glaizer [TAW] el Jue 14 Ene 2016, 16:53, editado 10 veces
Glaizer- Caballero Aprendiz
- Puntos de Capitán : 30
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 1043
Sexo :
Edad : 31
Fecha de nacimiento : 21/08/1993
Fecha de inscripción : 20/05/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Para que no haya clases exclusivas para miembros TAW inaccesibles para los pobres y comunes.
Regalos de San Cariñitos:
¡Gracias @Gherla! | ¡Gracias @Ikaros[LW]! | ¡Gracias @niko1996arg! | ¡Gracias @trashmunster! |
- Spoiler:
Wigazo- Bardo Pionero
- Puntos de Capitán : 280
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 48342
Sexo :
Edad : 29
Fecha de nacimiento : 23/10/1995
Localización : Munro, Buenos Aires, Argentina
¿Algo que decir? : 23
Fecha de inscripción : 12/08/2010
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Bueno, al parecer es exclusivo, no sé si Glaizer pensará en hacerlo público, ya que al hacerlo de esa manera, quizás el «TAW» se iría al carajo Igual, según entendí, no es sólo por las clases. Sino el ayudarse mutuamente y toda la cosa. Y/o trabajar en un proyecto en conjunto.
El foro necesita de tu ayuda.
Lee Mi Vida en Spore. (¡Capítulo 3 liberado!)
Visita mi Santuario para ver todas mis creaciones.
FlairDreamer- Chamán Tejedor
- Puntos de Capitán : 175
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 6672
Sexo :
Edad : 30
Fecha de nacimiento : 28/03/1994
Localización : Argentina
¿Algo que decir? : A wolf has to die at the bottom of the well.
Fecha de inscripción : 03/04/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Mierda, ya es tarde, ya sos uno de ellos. D= xD
Regalos de San Cariñitos:
¡Gracias @Gherla! | ¡Gracias @Ikaros[LW]! | ¡Gracias @niko1996arg! | ¡Gracias @trashmunster! |
- Spoiler:
Wigazo- Bardo Pionero
- Puntos de Capitán : 280
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 48342
Sexo :
Edad : 29
Fecha de nacimiento : 23/10/1995
Localización : Munro, Buenos Aires, Argentina
¿Algo que decir? : 23
Fecha de inscripción : 12/08/2010
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Pero no en el nombre
El foro necesita de tu ayuda.
Lee Mi Vida en Spore. (¡Capítulo 3 liberado!)
Visita mi Santuario para ver todas mis creaciones.
FlairDreamer- Chamán Tejedor
- Puntos de Capitán : 175
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 6672
Sexo :
Edad : 30
Fecha de nacimiento : 28/03/1994
Localización : Argentina
¿Algo que decir? : A wolf has to die at the bottom of the well.
Fecha de inscripción : 03/04/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Me acuerdo que una vez traté de usar GM como a los 10 años, no tenía ni mierda idea y a lo mucho logré hacer que se moviera un mono al apretar una tecla. xDD
Felicito el esfuerzo puesto en el tutorial, espero que sirva a alguien y que en los siguientes tuts de la serie se vean cosas más interesantes que sólo las herramientas del programa.
Felicito el esfuerzo puesto en el tutorial, espero que sirva a alguien y que en los siguientes tuts de la serie se vean cosas más interesantes que sólo las herramientas del programa.
technoguyx- Caballero Caballeresco
- Puntos de Capitán : 421
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 1592
Sexo :
Edad : 28
Fecha de nacimiento : 29/08/1996
Localización : Planeta Spoffit
Fecha de inscripción : 03/01/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Segunda Clase añadida.
Glaizer- Caballero Aprendiz
- Puntos de Capitán : 30
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 1043
Sexo :
Edad : 31
Fecha de nacimiento : 21/08/1993
Fecha de inscripción : 20/05/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Perfecto, justo terminé de hacer el tuto y me quedó bien bonito el mini-juego xD
El foro necesita de tu ayuda.
Lee Mi Vida en Spore. (¡Capítulo 3 liberado!)
Visita mi Santuario para ver todas mis creaciones.
FlairDreamer- Chamán Tejedor
- Puntos de Capitán : 175
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 6672
Sexo :
Edad : 30
Fecha de nacimiento : 28/03/1994
Localización : Argentina
¿Algo que decir? : A wolf has to die at the bottom of the well.
Fecha de inscripción : 03/04/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Muy buen tuto, bien explicado, y lo mejor: Libre y gratuito para que el proletariado pueda ver y aprender de él. (? Gracias por compartirlo.
twenty three!!!! xD
twenty three!!!! xD
Regalos de San Cariñitos:
¡Gracias @Gherla! | ¡Gracias @Ikaros[LW]! | ¡Gracias @niko1996arg! | ¡Gracias @trashmunster! |
- Spoiler:
Wigazo- Bardo Pionero
- Puntos de Capitán : 280
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 48342
Sexo :
Edad : 29
Fecha de nacimiento : 23/10/1995
Localización : Munro, Buenos Aires, Argentina
¿Algo que decir? : 23
Fecha de inscripción : 12/08/2010
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
@FlairDreamer, nadie te va a explicar como yo algunas cosas xDD , respeta al clan o te matamos mientras duermes no.. no voy a poner el (? por que no es joda.
Glaizer- Caballero Aprendiz
- Puntos de Capitán : 30
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 1043
Sexo :
Edad : 31
Fecha de nacimiento : 21/08/1993
Fecha de inscripción : 20/05/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
... No entendí una cho*a
El foro necesita de tu ayuda.
Lee Mi Vida en Spore. (¡Capítulo 3 liberado!)
Visita mi Santuario para ver todas mis creaciones.
FlairDreamer- Chamán Tejedor
- Puntos de Capitán : 175
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 6672
Sexo :
Edad : 30
Fecha de nacimiento : 28/03/1994
Localización : Argentina
¿Algo que decir? : A wolf has to die at the bottom of the well.
Fecha de inscripción : 03/04/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
FlairDreamer escribió:No realmente. Y aunque de TAW no aprendiera nada, mi universidad me enseñaría a crear video juegos de todas formas, así que...
No entendí la parte de «[...] luchar por la publicación de todas las clases.» xD
¿Qué estudias?
technoguyx escribió:Me acuerdo que una vez traté de usar GM como a los 10 años, no tenía ni mierda idea y a lo mucho logré hacer que se moviera un mono al apretar una tecla. xDD
Felicito el esfuerzo puesto en el tutorial, espero que sirva a alguien y que en los siguientes tuts de la serie se vean cosas más interesantes que sólo las herramientas del programa.
Idem
Wigazo escribió:Muy buen tuto, bien explicado, y lo mejor: Libre y gratuito para que el proletariado pueda ver y
COMING SOON
Glumyglu- Científico Investigador
- Puntos de Capitán : 75
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 4688
Sexo :
Edad : 24
Fecha de nacimiento : 10/07/2000
¿Algo que decir? : M-L
Fecha de inscripción : 08/04/2013
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Tecnicatura en Diseño y Programación de video juegos.
El foro necesita de tu ayuda.
Lee Mi Vida en Spore. (¡Capítulo 3 liberado!)
Visita mi Santuario para ver todas mis creaciones.
FlairDreamer- Chamán Tejedor
- Puntos de Capitán : 175
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 6672
Sexo :
Edad : 30
Fecha de nacimiento : 28/03/1994
Localización : Argentina
¿Algo que decir? : A wolf has to die at the bottom of the well.
Fecha de inscripción : 03/04/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Aprovecho para aclarar q en las tareas no quiero un jodido pacman con una espada (?, es enserio
Glaizer- Caballero Aprendiz
- Puntos de Capitán : 30
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 1043
Sexo :
Edad : 31
Fecha de nacimiento : 21/08/1993
Fecha de inscripción : 20/05/2015
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
FlairDreamer escribió:Tecnicatura en Diseño y Programación de video juegos.
Guay
Glaizer [TAW] escribió:Aprovecho para aclarar q en las tareas no quiero un jodido pacman con una espada (?, es enserio
COMING SOON
Glumyglu- Científico Investigador
- Puntos de Capitán : 75
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 4688
Sexo :
Edad : 24
Fecha de nacimiento : 10/07/2000
¿Algo que decir? : M-L
Fecha de inscripción : 08/04/2013
Premios :
Re: GameMaker (Clase*4 - Variables y Extra)
Glaizer [TAW] escribió:[...] Al llegar al último fotograma se vuelve al primero. (sé que pensaran que esto es para retrasados (? pero es para mi necesario enseñar bien [...]
Hay algunos programas que en vez de volver al primero, se estancan ahí. Y si querés ir al inicio tenés que apretar la flechita 50 mil veces hasta llegar ahí xD @Glaizer [TAW]
Muy interesante, vamos a ver que me sale
El foro necesita de tu ayuda.
Lee Mi Vida en Spore. (¡Capítulo 3 liberado!)
Visita mi Santuario para ver todas mis creaciones.
FlairDreamer- Chamán Tejedor
- Puntos de Capitán : 175
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 6672
Sexo :
Edad : 30
Fecha de nacimiento : 28/03/1994
Localización : Argentina
¿Algo que decir? : A wolf has to die at the bottom of the well.
Fecha de inscripción : 03/04/2015
Premios :
Max- Científico Ingeniero
- Puntos de Capitán : 130
Actividad de Arquetipos : Ver
Barra de Respeto : Mensajes : 3203
Sexo :
Edad : 22
Fecha de nacimiento : 03/09/2002
Localización : Argentina
¿Algo que decir? : Everything has its wonders, even darkness and silence, and I learn, whatever state I may be in, therein to be content.
Fecha de inscripción : 18/10/2012
Premios :
Página 3 de 5. • 1, 2, 3, 4, 5
Temas similares
» Destructores clase Venator y clase Victory I
» GML Tutoriales (T4: Variables)
» GameMaker Studio - (Nuevo canal de Discord)
» Clase NX
» Escudero Clase B [GOE] [E]
» GML Tutoriales (T4: Variables)
» GameMaker Studio - (Nuevo canal de Discord)
» Clase NX
» Escudero Clase B [GOE] [E]
Sporepedia 2 :: Spore World :: Off-topic :: Entretenimiento
Página 3 de 5.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|
Ayer a las 17:58 por Quincho96
» Los experimentos del Dr. Breincrox, parte 2
Ayer a las 17:57 por Quincho96
» Rise of Cults 2 Bot (Beta abierta)
Dom 03 Nov 2024, 00:24 por XleandroX
» ¿Que música están escuchando?
Jue 31 Oct 2024, 09:59 por FlairDreamer
» Extensión de Chrome: Sporepedia Downloader [1.2]
Jue 31 Oct 2024, 09:57 por FlairDreamer
» Cambios de Nick
Dom 27 Oct 2024, 14:55 por FlairDreamer
» Se solicita financiación
Dom 27 Oct 2024, 05:45 por Noni Beld
» antorchas de Minecraft
Miér 23 Oct 2024, 22:03 por Quincho96
» Criaturas de la noche
Vie 18 Oct 2024, 10:25 por Quincho96
» Criaturas de Tremors
Vie 18 Oct 2024, 10:17 por Quincho96
» Quad-Techtrak [O7] [T]
Vie 18 Oct 2024, 10:13 por Quincho96
» Dino Piraña
Miér 16 Oct 2024, 20:19 por Mozokas
» HVM-35 - Tanque Genesis INF [Sidimey vs. Coldfusion] [1]
Miér 16 Oct 2024, 00:41 por Quincho96
» botes de exploracion marina
Lun 14 Oct 2024, 22:36 por FlairDreamer
» [Proyecto] Genetic Aberration
Lun 14 Oct 2024, 22:31 por FlairDreamer
» El Santuario de Flair Dreamer [♫]
Lun 14 Oct 2024, 22:30 por FlairDreamer
» comparaciones entre blues
Dom 13 Oct 2024, 15:52 por thescientist9393
» Las partes robóticas en mi spore no funcionan bien
Dom 13 Oct 2024, 12:00 por FlairDreamer
» poner una aventura galactica de otra persona en spore pirata.
Dom 13 Oct 2024, 11:57 por FlairDreamer
» Que son los Niveles estos que estan en mi perfil?
Dom 13 Oct 2024, 11:56 por FlairDreamer
» Problema con los pies de DI y otros mods
Dom 13 Oct 2024, 11:55 por FlairDreamer
» mi criatura facha
Jue 10 Oct 2024, 22:29 por El Destructor de Especies
» como estan muchachos (mi version)
Jue 10 Oct 2024, 22:24 por El Destructor de Especies