Platyna Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 Mam takiego problema, że w jednym moim kodzie mimo że warunek if jest prawdziwy to GM i tak zawsze wykonuje else Mój kolega mi powiedział że to jest spowodowane tym że GM wykonuje jeden kawałek kodu kilka razy, a ja miałem w tym kodzie w instrukcjach if coś takiego co powodowało że za drugim razem sprawdzania kodu if już nie miało prawdziwego warunku i dla tegio wykonują się instrukcje w bloku else i przezto wykonuje się i "if" i "else". A więc żeby zapobiec temu że GM wykonuje każdy kod kilka razy zrobiłem pętlę do...until z zawsze fałszywym warunkiem żeby kod wykonał się tylko raz. No ale gdy gra zaczyna używać pętli "do until" z warunkiem fałszywym cały pecet mi się zawiesza. Dlaczego tak się dzieje?????!!!!!!!!!! HELP!!! Z góry dzięki... :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 Myślisz że jesteśmy jasnowidzami? Pokaż kod... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 31 Października 2005 Filar Społeczności Udostępnij Opublikowano 31 Października 2005 Twój kolega gada straszne głupoty z tymi linijkami kodu, następnym razem się go nie słuchaj. Tak jak poprzednik napisał, pokaż kod albo najpiej wycinek gmd. Zawsze się okazuje, że to wina użytkownika. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 31 Października 2005 Autor Udostępnij Opublikowano 31 Października 2005 Kod wygląda troszke inaczej niż wyjaśniałem bo zamiast if użyłem switch ale problem ten sam tylko teraz zamiast else zawsze wykonuje się default czy problem dokładnie ten sam switch(global.sejfik) { case(1): global.sejfik=2 break; case(4): global.sejfik=5 break; case(6): instance_create(0,0,klapa) break; default: global.sejfik=0 break; } Czyli tak: POwiedzcie mi dlaczego instrukcje w deafult wykonują się zawsze mimo że warunek z któregoś wcześniejszego case jest prawdziwy?????????????????????? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 Przydałoby się czasem poczytać HELP'a i podpatrzyć składnię. Oto błędy jakie znalazłem: 1. Nie używaj nawiasów w case'ach. 2. Nie widze średnika po instrukcjach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 Całkiem zjechana składnia. switch (<expression>) { case <expression1>: <statement1>; ...; break; case <expression2>: <statement2>; ...; break; ... default: <statement>; ... } Jesli zmienna glonal.sejfik jest jako expression a cyfry w nawiasach to wartość jaką ma ona przyjąć to kod powienien wyglądać tak: switch (global.sejfik) { case 1: global.sejfik=2 break; case 4: global.sejfik=5 break; case 6: instance_create(0,0,klapa) break; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 31 Października 2005 Autor Udostępnij Opublikowano 31 Października 2005 No dobra są minimalne błędy w kodzie ale nawet po poprawieniu ich i tak zawsze wykonuje mi się deafult Dlaczego? Mino że warunek jednego z case jest prawdziwy to deafult i tak jest wykonywane!!!!!!! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 31 Października 2005 Filar Społeczności Udostępnij Opublikowano 31 Października 2005 To jest niemożliwe, robisz coś źle. Pokaż poprawiony kod. Ten napisany przez Sly jest zły (czytaj odpowiedź bewuo). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Firemark Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 możliwe,że liczba jest randomowa i wychodzą ułami.Dlatego trza skorzystać z round np. xxx =round(random(<ilośc>)); wtedy masz pewbe :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 Jak ranma powiedział daj większy kawałek kodu, konkretnie jak jest tworzona wartość global.sejfik i jak sprawdzasz działanie tego case'a. Zgadnij Sly, którego punktu z mojego posty nie przeczytałeś ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 31 Października 2005 Udostępnij Opublikowano 31 Października 2005 Ehhh... Przeczytałem wszystkie :P Zgubiło mnie to, że wszystko w jednej linijce ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Listopada 2005 Administratorzy Udostępnij Opublikowano 1 Listopada 2005 Hmm, a moim zdaniem, to tu brakuje średników, no i dla pewności można by zaokragalć globalną (bo nie wiem co ją generuje): switch round(global.sejfik) { case 1: global.sejfik=2; break; case 4: global.sejfik=5; break; case 6: instance_create(0,0,klapa); break; default: global.sejfik=0; break; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 1 Listopada 2005 Udostępnij Opublikowano 1 Listopada 2005 Przykład gnyska jest w 100% dobry, widocznie global.sejfik był liczbą z miejscami po przecinku. W przykładzie jest pokazane zaokrąglenie w górę, w razie czego można też użyć zaokrąglenia w dół floor(variable);. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Listopada 2005 Administratorzy Udostępnij Opublikowano 1 Listopada 2005 Przykład gnyska jest w 100% dobry, widocznie global.sejfik był liczbą z miejscami po przecinku. W przykładzie jest pokazane zaokrąglenie w górę, w razie czego można też użyć zaokrąglenia w dół floor(variable);. <{POST_SNAPBACK}> Jesteś w błędzie. floor - zaokrągla w dół (5.2=5, 5.7=5); ceil - zaokrągla w górę(5.2=6, 5.7=6); round - zaokrągla w najbliższą stronę(5.2 =5, 5.7=6); jeżeli do generowania zmiennej global.sejfik uzywasz random, to aby uzyskać zmienną całkowitą, uzywaj global.sejfik=round(random(10)); Sprawdź jakie wartosci przyjmuje liczba global.sejfik, dając np. w event On Key Press <Space>: show_message(string(global.sejfik));, wtedy dowiesz się czy trzeba zaokrąglać i poznasz przyczynę swojego błędu (ja często wykorszystuję ten sposób ). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Firemark Opublikowano 1 Listopada 2005 Udostępnij Opublikowano 1 Listopada 2005 gnysek,zdawało mi sie,że gm już nie potrzebuje średników(w 4 było wymagane),ale nie sprzeczam się,że break mógł uznać za zakończenie całego switcha :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 1 Listopada 2005 Autor Udostępnij Opublikowano 1 Listopada 2005 Te break to właśnie ma być zakończenie całego switcha BO GM mi wykonuje zawsze deafult a ma to robić tylko gdy żadne z case ie ma prawdziwego warunku Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 1 Listopada 2005 Udostępnij Opublikowano 1 Listopada 2005 Platyna, powiedzieliśmy Ci co nas interesuje, pokaż nam to, to zobaczymy... 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ę