Matrix_ Opublikowano 6 Lutego 2014 Udostępnij Opublikowano 6 Lutego 2014 Witam, mam problem zrobiłem taki kod w obiekcie skrzynka: create: GML image_speed=0 otwarte=0 blokada=0 wybor=random(1) step: GML if otwarte=1 { image_index=1 if blokada=0{ if wybor=1 {instance_create(x,y+128,potionhp) blokada=1} if wybor=0 {instance_create(x,y+128,potionmana) blokada=1} }} if otwarte=0{ if distance_to_object(obohater) < 64{ if keyboard_check_pressed(ord("E")){ otwarte=1 }}} Problem jest taki, że jak podchodzę do skrzynki, naciskam E to skrzynka zmienia sprite, a żadny potion nie wychodzi. Jeżeli usunę if wybor, np. samo create potion hp, potion się pojawia. Nie rozumiem czemu to nie chce działać... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 6 Lutego 2014 Udostępnij Opublikowano 6 Lutego 2014 ja bym zrobił tak: create: GML image_speed=0 otwarte=0 blokada=0 wybor=random(1) GML if !otwarte { if distance_to_object(obohater) < 64 and keyboard_check_pressed(ord("E") otwarte=1 }else if !blokada { image_index=1 if wybor=1 {instance_create(x,y+128,potionhp) blokada=1} else {instance_create(x,y+128,potionmana) blokada=1} } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 6 Lutego 2014 Autor Udostępnij Opublikowano 6 Lutego 2014 ja bym zrobił tak: create: GML image_speed=0 otwarte=0 blokada=0 wybor=random(1) GML if !otwarte { if distance_to_object(obohater) < 64 and keyboard_check_pressed(ord("E") otwarte=1 }else if !blokada { image_index=1 if wybor=1 {instance_create(x,y+128,potionhp) blokada=1} else {instance_create(x,y+128,potionmana) blokada=1} } Coś znowu jest nie tak zobacz : Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 6 Lutego 2014 Udostępnij Opublikowano 6 Lutego 2014 dobra poprawka: GML if !otwarte { if point_distance(x,y,obohater.x,obohater.y) < 64 and keyboard_check_pressed(ord("E")) and !blokada { otwarte=1 image_index=1 if wybor=1 {instance_create(x,y+128,potionhp) blokada=1} else {instance_create(x,y+128,potionmana) blokada=1} } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 6 Lutego 2014 Autor Udostępnij Opublikowano 6 Lutego 2014 dobra poprawka: GML if !otwarte { if point_distance(x,y,obohater.x,obohater.y) < 64 and keyboard_check_pressed(ord("E") and !blokada { otwarte=1 image_index=1 if wybor=1 {instance_create(x,y+128,potionhp) blokada=1} else {instance_create(x,y+128,potionmana) blokada=1} } } Dalej nie działa: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 6 Lutego 2014 Udostępnij Opublikowano 6 Lutego 2014 GML wybor=irandom(1) A najlepiej używaj do czegoś takiego choose() Edit: A jeszcze lepiej naucz się debugować. show_message(wybor) przy otwarciu i już wiedziałbyś że wyskakują ci wartości zmiennoprzecinkowe (np.: 0.315). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 6 Lutego 2014 Filar Społeczności Udostępnij Opublikowano 6 Lutego 2014 albo round( random(1) ); co zaokrągla do liczb pełnych Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 6 Lutego 2014 Udostępnij Opublikowano 6 Lutego 2014 round() będzie tu głupi. Niepotrzebna dodatkowa funkcja, a wystarczy dopisać 'i'. W ogóle chyba trzeba będzie sprawdzić wydajność. ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 7 Lutego 2014 Udostępnij Opublikowano 7 Lutego 2014 jasiek_209: tak naprawde jedyny blod byl, jak piszo chlopaki v zamianie irandom za random. jak bys dal irandom to twoj pierwotny kod jest sprawny. bezdie dzialac, ale mozna go ulepszyc jak juz jest pokazane :) niema tylko verzji s choose, to podam jak bym ja napisal: GML //CREATE otwarte=0; GML //STEP if (!otwarte && keyboard_check_pressed(ord("E")) ) { if (distance_to_object(obohater) < 64 ) { instance_create(x, y+128, choose(potionmana, potionhp)); otwarte=1; }; }; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 7 Lutego 2014 Autor Udostępnij Opublikowano 7 Lutego 2014 GML wybor=irandom(1) A najlepiej używaj do czegoś takiego choose() Edit: A jeszcze lepiej naucz się debugować. show_message(wybor) przy otwarciu i już wiedziałbyś że wyskakują ci wartości zmiennoprzecinkowe (np.: 0.315). Co do edit, to w najbliższym czasie się postaram nauczyć... Muszę jakiś poradnik czy coś znaleźć... Z dokumentacji próbowałem ale nie zrozumiałem :D jasiek_209: tak naprawde jedyny blod byl, jak piszo chlopaki v zamianie irandom za random. jak bys dal irandom to twoj pierwotny kod jest sprawny. bezdie dzialac, ale mozna go ulepszyc jak juz jest pokazane :) niema tylko verzji s choose, to podam jak bym ja napisal: GML //CREATE otwarte=0; GML //STEP if (!otwarte && keyboard_check_pressed(ord("E")) ) { if (distance_to_object(obohater) < 64 ) { instance_create(x, y+128, choose(potionmana, potionhp)); otwarte=1; }; }; Działa, jeszcze tylko dorzucę zmianę grafiki: EDIT: Jeszcze takie pytanko jak zrobię instance_create(x, y+128, choose(potionmana, potionhp, potionhp)); Szansa na wybranie potionhp jest 2/3 ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 7 Lutego 2014 Udostępnij Opublikowano 7 Lutego 2014 tak instance_create(x, y+128, choose(potionmana, potionhp, potionhp)) ma szanse 30% poitonmana i 60% poitonhp choose ma limit argumentov 16, ale niema problemu zrobic choose(a, b, b, c, c , c, d, d, e, e, e, e, e, e, e, choose(f, g, g, h, h, h) ) taka ciekawostka :) co do debugowania: -run debbug mode fajna zrec jak jest problem z instancjami, zmiennymi itp -show message jak jest problem z zmiano zmienne przy akcji lub mniemanym niewykonaniem akcji -draw_text na kontynualno kontrole zmiannej v step/draw -show_debug_message niebardzo uzywam, bo wyzej mianowane mi zawse starczyly, ale ma swe mozliwosci. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piotrek1910 Opublikowano 7 Lutego 2014 Udostępnij Opublikowano 7 Lutego 2014 Troche cofając się o pare postów nie polecam irandom bo za każdym razem losuje tą samą liczbe. Polecam round ( random (x) ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 7 Lutego 2014 Udostępnij Opublikowano 7 Lutego 2014 Troche cofając się o pare postów nie polecam irandom bo za każdym razem losuje tą samą liczbe. Polecam round ( random (x) )z tego co mi wiadomo podczas testowania gm:studio zawsze startuje z tym samym seedem aby ułatwić wykrywanie błędów, więc nie. odpal sobie komendę randomize lub random_set_seed i zobacz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 8 Lutego 2014 Autor Udostępnij Opublikowano 8 Lutego 2014 tak instance_create(x, y+128, choose(potionmana, potionhp, potionhp)) ma szanse 30% poitonmana i 60% poitonhp choose ma limit argumentov 16, ale niema problemu zrobic choose(a, b, b, c, c , c, d, d, e, e, e, e, e, e, e, choose(f, g, g, h, h, h) ) taka ciekawostka :) co do debugowania: -run debbug mode fajna zrec jak jest problem z instancjami, zmiennymi itp -show message jak jest problem z zmiano zmienne przy akcji lub mniemanym niewykonaniem akcji -draw_text na kontynualno kontrole zmiannej v step/draw -show_debug_message niebardzo uzywam, bo wyzej mianowane mi zawse starczyly, ale ma swe mozliwosci. Dobrze wiedzieć, mogę zrobić GML instance_create(x, y+128, choose(choose(malapotionhp,sredniapotionhp,duzapotionhp), choose(malapotiomana,sredniapotionmana,duzapotionmana)) :D Pokąbinujecoś z tym debugowaniem, widziałem gdzieś taki bardzo przejrzysty debuger w GM:S, to chyba w EUP czy jakoś tak :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Lutego 2014 Administratorzy Udostępnij Opublikowano 8 Lutego 2014 EAP - Early Access :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 8 Lutego 2014 Autor Udostępnij Opublikowano 8 Lutego 2014 EAP - Early Access :) Off Topic , w Early Access jest ten nowy debuger ? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 8 Lutego 2014 Udostępnij Opublikowano 8 Lutego 2014 tak ale posysa 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ę