Skocz do zawartości

Tabela osiągnięć


Cygnus

Rekomendowane odpowiedzi

Witam wszystkich

 

stworzyłem sobie tabele wyników..i w osobnym pokoju (bo tam mam ten obiekt)wyświetla mi parę pozycji między innymi imię,ilość zabitych wrogów,ilość monet zebranych i ilość punktów zgromadzonych.

No,ale teraz chciałbym,żebym mógł dokonywać wpisu w momencie,kiedy zginę w grze i jak osiągnę odpowiednią ilość punktów,(bo ustawione mam tak sortowanie względem punktów) to wyświetli się informacja z podaniem swojego imienia i nastąpi wpis ,który wyświetli się w osobnym pokoju,i po tym pokój game over,a jak nie będę miał wystarczającej ilości punktów,to tylko tabelka pojawi się z wynikami.a potem plansza game over.

 

Walczę z tym i nie wiem jak to rozgryźć..

jeśli chodzi o moje zmienne w grze to mam globalne,czyli global.life,global,coins,global.pScore

 

 

tutaj kod mojej tabelki wyników,która jest w osobnym pokoju..

 

 

create

 

GML
hiscore_list = ds_list_create();

 

temp_hiscore_list = ds_list_create();

 

hiscore_pos_lenthg = 4;

hiscore_max_list_length = 10;

 

hiscore_sort_by = 3;

 

name = "John";

kills = 3;

coins = 5;

points = 7;

ds_list_add(hiscore_list,name);

ds_list_add(hiscore_list,kills);

ds_list_add(hiscore_list,coins);

ds_list_add(hiscore_list,points);

 

 

name = "Sean";

kills = 3;

coins = 11;

points = 2;

ds_list_add(hiscore_list,name);

ds_list_add(hiscore_list,kills);

ds_list_add(hiscore_list,coins);

ds_list_add(hiscore_list,points);

 

 

 

name = "Bob";

kills = 17;

coins = 5;

points = 1;

ds_list_add(hiscore_list,name);

ds_list_add(hiscore_list,kills);

ds_list_add(hiscore_list,coins);

ds_list_add(hiscore_list,points);

 

 

name = "Jimmy";

kills = 3;

coins = 3;

points = 21;

ds_list_add(hiscore_list,name);

ds_list_add(hiscore_list,kills);

ds_list_add(hiscore_list,coins);

ds_list_add(hiscore_list,points);

 

 

step

 

GML
//sortowanie tabeli osiagniec

ds_list_clear(temp_hiscore_list);

 

 

do

{

var temp_highest_points = 0;

 

for(p = 0; p < ds_list_size(hiscore_list); p += hiscore_pos_lenthg)

{

points = ds_list_find_value(hiscore_list, p + 3);

 

if points > temp_highest_points

{temp_highest_points = points}

 

}

 

var highest_position = 0;

 

highest_position = ds_list_find_index(hiscore_list, temp_highest_points);

 

 

name = ds_list_find_value(hiscore_list, highest_position -3);

kills = ds_list_find_value(hiscore_list, highest_position -2);

coins = ds_list_find_value(hiscore_list, highest_position -1);

points = ds_list_find_value(hiscore_list, highest_position);

 

ds_list_add(temp_hiscore_list,name);

ds_list_add(temp_hiscore_list,kills);

ds_list_add(temp_hiscore_list,coins);

ds_list_add(temp_hiscore_list,points);

 

repeat (4) {ds_list_delete(hiscore_list, highest_position -3)};

}

until ds_list_size(hiscore_list) = 0;

 

 

//sortowanie tabeli osiagniec

ds_list_copy(hiscore_list,temp_hiscore_list);

 

 

draw

 

 

GML
//rysowanie tabeli osiagniec

var leftx = 20;

var topy = 20;

var xspacing = 200;

var yspacing = 5;

for(p = 0; p < ds_list_size(hiscore_list); p += hiscore_pos_lenthg)

{

 

name = ds_list_find_value(hiscore_list, p + 0);

kills = ds_list_find_value(hiscore_list, p + 1);

coins = ds_list_find_value(hiscore_list, p + 2);

points = ds_list_find_value(hiscore_list, p + 3);

 

draw_text(leftx + xspacing * 0, topy + yspacing * p,

string(ceil(p/hiscore_pos_lenthg)) + ".");

draw_text(leftx + xspacing * 1, topy + yspacing * p,

"name : " + string(name));

draw_text(leftx + xspacing * 2, topy + yspacing * p,

"kills : " + string(kills));

draw_text(leftx + xspacing * 3, topy + yspacing * p,

"coins : " + string(coins));

draw_text(leftx + xspacing * 4, topy + yspacing * p,

"score : " + string(points));

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...