Skocz do zawartości

Organizacja zmiennych


Kuzyn
Przejdź do rozwiązania Rozwiązane przez Gibki Kaktus,

Rekomendowane odpowiedzi

Witam! Jest to mój pierwszy post tutaj, nawet nie wiedziałem, że mamy polskojęzyczne forum o GM! :D

 

Generalnie jestem "noobem" w kwestii programowania i tak dalej, ale postanowiłem coś stworzyć i powalczyć z tym. Doszedłem do momentu, w którym potrzebuję stworzyć "miejsce" gdzie mam zebrane zmienne, mniej więcej taka tabelka 5x10. Jak mogę najefektywniej to uczynić, aby zapisywanie jak i odczytywanie zmiennych było w miarę proste?

 

Czytałem o ds_map, ds_list, ds_grid. Jakoś nie uśmiecha mi się wypisywać 50 linijek kodu, żeby te wszystkie struktury uzupełnić...

A innego sposobu nie znam, słyszałem, że można też coś robić z plikami csv/ini ale jak ściągnąłem jakiś dodatek czytający dane z csv i zobaczyłem ten kod to... eh.

 

To czego potrzebuję wygląda mniej więcej tak:

9c96R0p.png

 

Te dane chciałbym później odczytać by móc tworzyć obiekty i teksty na zasadzie takiej listy. Bawiłem się z "for", który jakby miał sam po części tworzyć te dane, ale wyszły takie jaja, że chciałem zrobić to inaczej.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Najprościej dla Ciebie. Użyć ds_map, później do zapisu do pliku wystarczy ds_map_write, a do odczytu ds_map_read.

 

Rozwiązanie w dokumentacji: https://docs.yoyogames.com/source/dadiospice/002_reference/data structures/ds maps/ds_map_write.html

Odnośnik do komentarza
Udostępnij na innych stronach

Dnia 11.11.2017 o 22:14, Uzjel napisał:

Najprościej dla Ciebie. Użyć ds_map, później do zapisu do pliku wystarczy ds_map_write, a do odczytu ds_map_read.

 

Rozwiązanie w dokumentacji: https://docs.yoyogames.com/source/dadiospice/002_reference/data structures/ds maps/ds_map_write.html

 

Dzięki za odpowiedź, zmotywowała mnie ona do tego, żeby jednak przejrzeć jeszcze raz kod i udało mi się wyeliminować część błędów i chyba zostanę przy pętli. Potrzebuję jednak dalszej pomocy :(

 

Problem polega na tym, że nie mogę dojść do tego, żeby wszystko było w jednej linii (walczyłem już dziesiątkami różnych kombinacji i ciągle jest nie tak), a druga to taka, że te liczby (3 cyfrowe i po przecinku) zmieniają się kilkukrotnie w ułamku sekundy. Nie chcą wygenerować się raz i przestać.

0BmM39X.png

 

Kod draw_gui:

switch (switch_view) //w zaleznosci od otwartego okna, zmienia sie zawartosc
    {
        case "resource": //okno resource
            draw_set_font(fnt_italianate2);
            draw_set_colour(c_black);
            draw_text(128, 320, "Energy: " + string(energy));
            draw_text(128, 520, "Water: " + string(water));
            break;
        case "local": //okno local market
            draw_set_font(fnt_italianate2);
            draw_set_colour(c_black);
            
            for (i = 0; i < 5; i += 1) //tworzenie ofert
                {
                    instance_create(1848, (i+1)*275+50, obj_sell10);
                    instance_create(2048, (i+1)*275+50, obj_sell100);
                    draw_sprite_ext(spr_pl, 0, 128, ((i+1)*0.75)*350+50, 1, 1, 0, c_white, 1);
                    obj_game.retail_price = item_price + random_range(0.5,0.75);
                    obj_game.retail_amount = item_amount + irandom_range(-150, 150);
                    draw_text(308, ((i+1)*0.75)*325+50, string(obj_game.retail_amount));                   
                    draw_text(508, ((i+1)*0.75)*325+50, string(obj_game.retail_price));
                }
            break;
        case "false":
            break;
    }

 

P.S.

Twoja sygnatura do discorda nie działa, link źle napisany.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Tak na szybko.

Prócz trochę złego podejścia - pętla w switchu - i małego bałaganu. Rzuca się w oczy losowanie ceny co step. Twój problem z brakiem wyrównania właśnie wynika z braku porządku w kodzie.

 

Spróbuj ustalić zmienną typu yy, która będzie trzymała pozycję y każdego elementu na twojej liście, wtedy taki rozjazd nie będzie miał prawa wystąpić. Na oko widzę, że w jednym miejscu i mnożysz .75 a w innym wcale.

 

Dzięki za info o sygnaturce ;)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Rozwiązanie

Co do generowania, to draw działa co klatkę, a Ty z każdą klatką generujesz nowe losowo.

Stwórz w create zmienną np item_price_random=

random_range(0.5,0.75)

I potem w kodzie zamiast random_range to wpisujesz item_price_random.

 

Co do błędu w pokazywaniu nierównych rzeczy to robisz to tak, że w każdym z wyświetlanych rzeczy w y wpisujesz tę samą wartość mnożenia z i u wszystkich, u Cb jest różnie 325,350,275, już nie wspominam o tym, że w obiektach nie mnożysz  przez 0.75 a w reszcie tak. A ta druga wartość którą masz stanowi gdzie będzie się ustawiać.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za podpowiedzi z tym losowaniem. Pewnie wpisanie tego w create załatwi cały problem.

 

Co do różnych wartości, to tak, wiem o tym. Gdy wszędzie wpisywałem to samo to i tak nie było równo z racji tego, że te sprity, obiekty i teksty są różnych rozmiarów i nawet jak pierwsza linia się ułoży to reszta już nie przed inne odstępów :( Ale popróbuję jeszcze to wyrównać :)

 

Dziękuję za pomoc.

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ę...