Scripts y las ventajas de su uso
Clase 2 de 13 • Curso de Game Maker Studio 2: Interacción y Ataque de los Personajes
Contenido del curso
Clase 2 de 13 • Curso de Game Maker Studio 2: Interacción y Ataque de los Personajes
Contenido del curso
Sham Anthony Rojas Molina
Jesus Raymundo Figueroa Colio
Rafael Robles Colinas
Luciana Durand
Jorge García
Jorge García
Jonathan Mejorado López
Efrain Alejandro Salazar Cubillos
Jorge García
Sergio Andres Salgado Romero
Perez Laura
Anaximandro Rodríguez
José David De la Cruz Elizondo
Anaximandro Rodríguez
Juan Felipe Angarita Lopez
Juan Felipe Angarita Lopez
Juan Felipe Angarita Lopez
Osvaldo Abdiel Juarez Ordaz
nick alfonso medina vargas
Luis Steven Mora
Jose Luis Bedoya
yo solo le hice así, para poder utilizar el ADWS: function scr_get_input(){ Right = keyboard_check (ord ("D")) Left = keyboard_check (ord ("A")) Up = keyboard_check (ord ("W")) Down = keyboard_check (ord ("S")) } //y en Step, del Player, en if solo le puse el nombre ya otorgado: if (Right) { x = x+spd; sprite_index = spr_Bat_Running image_xscale = 1; }
else if (Left) { x = x-spd; sprite_index = spr_Bat_Running; image_xscale = -1;
//a si asta llegan al final, con el código
muchas gracias viejo me fue de mucha ayuda
Muy bueno el aporte! Junto con la documentación que coloco el profesor para complementar el conocimiento!
cual es el código para reemplazar las flechas por ASDW?
Hola Mathias, solo reemplaza la parte de "vk_" por la función ord(), por ejemplo:
keyboard_check(vk_left); por keyboard_check(ord("A"));
Aquí toda la documentación sobre esa función: https://manual-es.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FStrings%2Ford.htm&rhsearch=ord&rhhlterm=ord
En esta clase lo implementamos: https://platzi.com/clases/2790-game-maker-personajes/46509-el-estado-de-ataque/
2 Scripts y las ventajas de uso
Los scripts son los bloques de código que nos permitirá reutilizarlo a lo largo de la creación de nuestros objetos, algo que sepamos que va a ser recurrente, como la implementacion de la lectura de el teclado entre otros.
Lo usaremos de manera que se vuelva mas eficiente la creación de estos mismos. Para este caso crearemos un script de el movimiento de nuestro jugador y lo haremos en el apartado de scripts en la venta de navegador de archivos, y seguiremos los sig pasos.
Presionaremos crear, y posteriormente crearemos un script, y renombraremos el script como scr_get_input
Del objeto first player, tomaremos el codigo que teniamos en nuestros condicionales if, y les asignaremos las variables: right, left, up, down, dando sentido a las direcciones en que se movera, para ello crearemos estas variables en el script, y aqui pegaremos los codigos que se encontraban en cada correspondiente direccion del first player.
Posteriormente, en el codigo de nuestro objeto first player, en la parte de step, procederemos a colocar al principio de todo el apartado la sig linea: scr_get_input(); aqui llamaremos al script que realizamos con anterioridad, y en los condicionales quitaremos los demas codigos y simplemente sustituiremos con las variables**, right, left, up ,down.**
Hay alguna forma de programar las flechas y teclas WASD al tiempo con este método? intente colocando debajo del código que se presentó en la clase el keyboard_check(ord(“A”)) y asi para las demás, ahora me reconoce las teclas WASD pero no las flechas
Hola, sí, utiliza || para asignar una comparación OR:
variable_izquieda = keyboard_check(ord(“A”)) || keyboard_check(ord(“J”)) ;
Así al presionar A o J va a ser indiferente para el código.
aquí les dejo mi código: #region//control de movimiento scr_get_imput(); if(right) { x = x + vel; sprite_index = spr_gobllin_walking; image_xscale = 1; }else if(left) { x = x - vel; sprite_index = spr_gobllin_walking; image_xscale = - 1; }else if (up) { y = y - vel; sprite_index = spr_gobllin_walking;
}else if(down) { y = y + vel; sprite_index = spr_gobllin_walking;
}
else{ sprite_index = spr_goblin_idle; } #endregion
En mi caso utilicé un switch para la función src_get_input()
function scr_get_input(){ switch(keyboard_key){ case ord("A"): x -= spd; break; case ord("D"): x += spd; break; case ord("W"): y -= spd; break; case ord("S"): y += spd; break; default: sprite_index = spr_punk_idle; } }
Si le sabes, ahuevo. El switch es bueno, pero mejor el enumerador, siempre usan ese ultimo xd
Si quieren poder usar tanto flechas del teclado como ASDW escriban este código y podrán moverse usando la forma que gusten, ya sea con flechas o ASDW.
Esta bueno, Te vendría fenomenal usar la función switch, para no usar tanto el else, es lo mismo pero me dicen varios que es mejor usar ese o el enumerador
Creando scripts
Antes de pasar a echar unas cuantas líneas de código vamos a darle un vistazo a los sitios donde nuestros scripts están presentes, dándonos una vista general de que podemos hacer con los mismos dependiendo de la situación.
Creando scripts dentro de un evento
Dentro de un objeto existen eventos asociados al mismo, donde estos eventos pueden contener un script o contener una acción que llame a uno de estos. Esta será la única ocasión donde la funcionalidad de Arrastrar y Soltar será utilizada para los scripts.
Para agregar un script a un evento primero debemos crear un objeto desde nuestro menú de recursos y una vez creado utilizamos el botón agregar evento para crearlo:
Scripts Hemos hablado de los principales recursos que podemos utilizar en nuestros juegos: imágenes que utilizamos para los fondos o los objetos que programamos, sonidos, habitaciones dónde colocar los objetos… Ahora ya tocaría empezar a usar código GML, ya que hemos visto cómo creamos eventos y acciones. Pero antes de mirar el lenguaje propio de Game Maker Studio, debemos de pararnos un momento para ver que son los scripts. Game Maker tiene un montón de funciones que podemos utilizar, pero es posible que en algún momento necesitemos crear nuestras propias funciones, para utilizarlos en diferentes sitios como en objetos, rooms, etc. Estas funciones, que las usamos para hacer cosas específicas, las añadimos en el árbol de recursos, en la carpeta de scripts.
Para que no me saliera error. le aplique: **right = keyboard_check(vk_right); left = keyboard_check(vk_left); up = keyboard_check(vk_up); down = keyboard_check(vk_down); ** en object del personaje. Es raro que me salga error por eso xD Pero bueno, lo dejo por si alguien le pasa lo que a mi.
podrias mostrar imagen?
Un pequeño aporte que va de la mano de otras contribuciones de compañeros:
User el operador OR representado por || para que el programa detecte ambas, las flechas y el WASD. Noten tambien que ya que son 2 expresiones, hay que enserrarlas en un parentesis.
right = (keyboard_check(vk_right)) || keyboard_check(ord("D"));
prueba marcadores