Kuzyn Opublikowano 11 Listopada 2017 Udostępnij Opublikowano 11 Listopada 2017 Witam! Jest to mój pierwszy post tutaj, nawet nie wiedziałem, że mamy polskojęzyczne forum o GM! 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: 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 Więcej opcji udostępniania...
Uzjel Opublikowano 11 Listopada 2017 Udostępnij Opublikowano 11 Listopada 2017 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 Kuzyn 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kuzyn Opublikowano 13 Listopada 2017 Autor Udostępnij Opublikowano 13 Listopada 2017 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ć. 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 Więcej opcji udostępniania...
Uzjel Opublikowano 13 Listopada 2017 Udostępnij Opublikowano 13 Listopada 2017 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 Kuzyn 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rozwiązanie Gibki Kaktus Opublikowano 13 Listopada 2017 Rozwiązanie Udostępnij Opublikowano 13 Listopada 2017 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ć. Kuzyn 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kuzyn Opublikowano 13 Listopada 2017 Autor Udostępnij Opublikowano 13 Listopada 2017 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. Uzjel 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę