Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Zaca en Mayo 24, 2018, 12:04:47 AM

Título: Buscar objetos en el inventario por su nombre
Publicado por: Zaca en Mayo 24, 2018, 12:04:47 AM
Hola a todos, estoy haciendo un juegos donde el jugador tiene varios objetos en el inventario, y quisiera saber como podría hacer para buscar los objetos por su nombre. Tipo, al escribir elixir, se listen todos los elixir. Alguien sabría como crear un objeto que gestione esa busqueda y muestre los resultados. Desde ya muchas gracias
Título: Re:Buscar objetos en el inventario por su nombre
Publicado por: 3dgeminis en Mayo 24, 2018, 06:05:48 AM
Puedes usar un loop(for()) para recorrer toda la lista de objetos en el inventario y guardar en otra lista solo los elementos que contengan el valor elixir y mostrarla en pantalla.
Que usas para crear el inventario, arrays, listas, grids ?
Título: Re:Buscar objetos en el inventario por su nombre
Publicado por: Zaca en Mayo 25, 2018, 06:58:02 PM
Cita de: 3dgeminis en Mayo 24, 2018, 06:05:48 AM
Puedes usar un loop(for()) para recorrer toda la lista de objetos en el inventario y guardar en otra lista solo los elementos que contengan el valor elixir y mostrarla en pantalla.
Que usas para crear el inventario, arrays, listas, grids ?

Estoy usando arrays de 2 dimensiones, ya consegui guardar los nombres de los objetos en una variable. Pero como hago para compararlo con la palabra que estoy buscando?
Título: Re:Buscar objetos en el inventario por su nombre
Publicado por: 3dgeminis en Mayo 26, 2018, 07:08:55 AM
Un ejemplo:
[gml]
///EVENTO CREATE
inv[0]=0 ///array que sera el inventario
for(i=0;i<20;i+=1) {inv=choose("espada","escudo","armadura","pocion",)}  ///rellena el array con una palabra al azar, este seria el inventario

temp_list=ds_list_create() ///crea una lista que contendra solo una de las palabras
for(i=0;i<20;i+=1) {if inv="pocion" {ds_list_add(temp_list, inv)}} ///hacemos un loop con el numero total de palabras en el array y agregamos a la lista solo los valores que sean igual a pocion

///EVENTO DRAW
for(i=0;i<20;i+=1) {draw_text(10, y+(i*20), inv)}  ///dibujamos el inventario

for(i=0;i<ds_list_size(temp_list);i+=1) {draw_text(x+200, y+(i*20), ds_list_find_value(temp_list, i))} ///dibujamos la lista
[/gml]
Título: Re:Buscar objetos en el inventario por su nombre
Publicado por: Zaca en Mayo 27, 2018, 03:51:31 AM
Cita de: 3dgeminis en Mayo 26, 2018, 07:08:55 AM
Un ejemplo:
[gml]
///EVENTO CREATE
inv[0]=0 ///array que sera el inventario
for(i=0;i<20;i+=1) {inv=choose("espada","escudo","armadura","pocion",)}  ///rellena el array con una palabra al azar, este seria el inventario

temp_list=ds_list_create() ///crea una lista que contendra solo una de las palabras
for(i=0;i<20;i+=1) {if inv="pocion" {ds_list_add(temp_list, inv)}} ///hacemos un loop con el numero total de palabras en el array y agregamos a la lista solo los valores que sean igual a pocion

///EVENTO DRAW
for(i=0;i<20;i+=1) {draw_text(10, y+(i*20), inv)}  ///dibujamos el inventario

for(i=0;i<ds_list_size(temp_list);i+=1) {draw_text(x+200, y+(i*20), ds_list_find_value(temp_list, i))} ///dibujamos la lista
[/gml]

Muchísimas gracias fuiste de gran ayuda!!!!!