Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Kiwi Chan en Diciembre 21, 2018, 05:45:36 AM

Título: Cómo puedo crear una tabla de highscore?
Publicado por: Kiwi Chan en Diciembre 21, 2018, 05:45:36 AM
Hola a todos, me preguntaba el como podría yo crear una tabla de puntuación en donde cuando pierdas te muestre los 10 puntajes mas altos y te deje escribir tu nombre y se quede guardado, si yo se que Game Maker ya te da una por defecto (que es como una ventana de Windows) pero yo quiero crear una mía propia personalizada así con mi fondo, letra, color, decoración, etc dentro del juego (ya que la que viene en GM8.1 me parece muy simple)
Se que quizá sea algo muy obvio pero soy todo un novato y no he encontrado nada en internet, de todas formas gracias
Título: Re:Cómo puedo crear una tabla de highscore?
Publicado por: Black_Cat en Diciembre 21, 2018, 07:03:05 PM
hola amigo, para eso podes usar listas:

gamemaker.info/en/manual/411_03_lists (http://gamemaker.info/en/manual/411_03_lists)
ahi tenes varias funciones para añadir elementos e incluso ordenar de mayor a menos.
seria cuestion de agregar elementos, ordenarla y dibujar los scores.

Luego para remplazar un elemento tienes la funcion
ds_list_replace(...)Solo tendrias que ir verificando uno a uno los elementos para saber en que lugar remplazarlo.
Título: Re:Cómo puedo crear una tabla de highscore?
Publicado por: 3dgeminis en Diciembre 21, 2018, 07:27:03 PM
Lo que puedes hacer es usar los valores de la tabla de puntuacion que tiene game maker, y aprovechar que GM hace el trabajo de ordenar los valores por ti.
Puedes usar las funciones highscore_name y highscore_value dentro de un loop para dibujar los valores
[gml]
for(i=1;i<=10;i+=1)
   {
    draw_text(x, y, i)
    draw_text(x+50, y+(i*20), highscore_name(i))
    draw_text(x+150, y+(i*20), highscore_value(i))
   }
[/gml]

El problema que veo con las ds_list es que solo podras ordenar una columna de datos(puntos), y si tenes 2 columnas(nombre y puntos) no veo como se podria ordenar.
Yo usaria una ds_grid o un array 2d, asi no solo podrias poner el nombre y puntos si no tambien vidas, tiempo, enemigos muertos, etc, y se podria usar algun algoritmo de ordenamiento para ordenarlos de mayor a menor o alreves .
Título: Re:Cómo puedo crear una tabla de highscore?
Publicado por: Kiwi Chan en Diciembre 22, 2018, 05:39:36 AM
Muchas gracias a ambos!