Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - NU597

Páginas: 1
1
Preguntas y respuestas / Re:Sistema de Batalla [04/08/2019]
« en: Agosto 04, 2019, 07:23:01 pm »
Bueno, que puedo decir, casi que te respondiste solo  XD
Si quieres dividir el ataque del jugador con la defensa del enemigo, solo debes aplicar la fórmula.
danio = obj_jugador.ataque / defensa;
vida -= danio;
Y variaría si se manejas decimales o no, si son redondeados a enteros:
danio = floor(obj_jugador.ataque / defensa);
vida -= danio;

Y claro, ya vendría el hecho de cómo tienes implementado el motor como tal para saber si va en un evento de colision o en una alarma, por ejemplo.
Los siguientes usuarios dieron las gracias a este tema: NU597

2
Preguntas y respuestas / Re:Sistema de inventario [2019]
« en: Julio 31, 2019, 08:52:04 pm »
Saludos!
Bajé el editable y lo miré un poco. El problema que tiene es que solamente está almacenando el valor en una única variable.
Lo cual no sirve de mucho, aunque visualmente, si, cumple con parecerse a lo que es un menú de selección. No serviría de mucho, el hecho de que la variable guarde un valor del 1 al 9, puesto que necesitaríamos saber qué item se aloja en cada lugar.

Una variable común como la que estás utilizando, en este caso llamada "Select" es una variable que puede almacenar un único valor a la vez.
Deberías usar un array(también llamados arreglos, vectores o listas) lo que sería más sencillo de hacer, que si tuvieras por ejemplo 9 o 10 variables para guardar un item en cada espacio.
Se entiende por un array, a una variable que es capaz de almacenar varios valores simultaneamente.

Un ejemplo práctico usal es hacer uso de una variable de este tipo para guardar los meses del año. En Game maker tendríamos la estructura como:
mes[1] = "enero";
mes[2] = "febrero"
mes[3] = "marzo"
mes[4] = "abril"
mes[5] = "mayo"
mes[6] = "junio"
mes[7] = "julio"
mes[8] = "agosto"
mes[9] = "septiembre"
mes[10] = "octubre"
mes[11] = "noviembre"
mes[12] = "diciembre"
Como puedes notar, a diferencia de una variable común a la que solo se le asigna un nombre, como "Select", la variable de tipo array, tiene llaves cuadradas "[" y "]", lo cual indica que es una variable capaz de almacenar varios valores al mismo tiempo.
También como puedes notar, la variable lleva consigo, un numero, en este caso va del 1 al 12, lo cuál indica la posición o lugar de un determinado valor dentro de nuestro array.

Si mostrásemos un mensaje, queriendo ver el mes que está dentro de la posicion 3, haríamos en GML:
draw_text(0, 0, string( mes[3]);
Lo cuál mostraría al mes de "Marzo" en pantalla.

Para mostrar, toda la información en pantall,a como has de suponer, se tiene que recorrer la lista entera para poder mostrarla, por ejemplo:

draw_text(0, 20, string( mes[1]);
draw_text(0, 40, string( mes[2]);
draw_text(0, 60, string( mes[3]);
// ... y asi en lo sucesivo hasta
draw_text(0, 240, string( mes[12]);
Lo cual mostraría los valores uno, debajo de otro, enseñando en pantalla así los 12 meses del año. Como puedes notar, nuevamente, se usa un número que acompaña a la variable "mes" , para determinar qué valor mostraremos. Ese número que acompaña se llama usualmente "índice" (o posicion, lugar o del inglés, "index"). Entonces para nuestro ejemplo del mes de Marzo, la variable mes[3], tiene el indice tres.

Extrapolando la explicación a tu sistema de inventario. Estaría bien ponerle un nombre adecuado, por ejemplo:
inventario[1] = ""
inventario[2] = ""
inventario[3] = ""
inventario[4] = ""
inventario[5] = ""
inventario[6] = ""
inventario[7] = ""
inventario[8] = ""
inventario[9] = ""
Ahora hemos creado la variable "inventario" con  9 lugares disponibles para valores. Es decir, "inventario" ahora puede almacenar simultáneamente 9 diferentes valores. Nosotros colocamos comillas vacías ("") para indicar que el inventario está vacío.
Pero en la práctica podemos asignar cualquier valor que nos convenga, por ejemplo:  inventario[4] = "pocion magica".

Hay maneras más automatizadas de crear, y mostrar un array, pero eso ya depende de cuán familiarizado estés con el uso de ciclos no condicionados (o ciclo for).

Pero bien, ahí tu me dices las dudas que tengas, así explayamos más aún el tema.


Los siguientes usuarios dieron las gracias a este tema: NU597

Páginas: 1