Exigo Opublikowano 12 Stycznia 2009 Udostępnij Opublikowano 12 Stycznia 2009 Więc tak... czemu nie działają "ekspresje"? w pętli switch?... przykładowo: switch (keyboard_key) { case vk_left || vk_right: x -= 5; break; case vk_up|| vk_down: x += 5; break; } Hm? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 12 Stycznia 2009 Udostępnij Opublikowano 12 Stycznia 2009 to się nazywa "operatory". robi się case vk_left: case vk_right: //akcja break; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 12 Stycznia 2009 Autor Udostępnij Opublikowano 12 Stycznia 2009 Ok.. rozumiem że tylko i wyłącznie jest rozwiązanie na tzw. " || "?.. Co zrobić jeśli chcę użyć innych operatorów? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 12 Stycznia 2009 Udostępnij Opublikowano 12 Stycznia 2009 tak chyba łączyć nie możesz. zrób po dwa i już. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 13 Stycznia 2009 Udostępnij Opublikowano 13 Stycznia 2009 Od tego jest instrukcja warunkowa if, ot co. Switcha używamy tylko wtedy, gdy idealnie nam odpowiada. Wszelkie kombinacje są dla mnie bez sensu... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 14 Stycznia 2009 Udostępnij Opublikowano 14 Stycznia 2009 GML switch (keyboard_key) { case vk_left: case vk_right: x -= 5; break; case vk_up: case vk_down: x += 5; break; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 14 Stycznia 2009 Autor Udostępnij Opublikowano 14 Stycznia 2009 Już ktoś zarzucił podobny kod... ale i tak wszystko się mija z celem bo mi potrzebne jest tylko i wyłącznie "&&" - w switchu rzecz jasna. Zresztą, problem jest "rozwiązany"... oczywiście w if'ach. Zapewne wiadomo ile linijek zajął mi ten kod. @Pental: Gdy by się udało rozwiązać ten problem, switch by pasował jak tralala. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 A jakie znaczenie linijki mają, skoro znak nowej linii to tzw. biały znak? Czyli spacje też liczysz :) ? Mówię, switch polecam używać do konkretnych wartości, najlepiej liczb, tak jest najprościej. Jeśli chcesz używać operatorów logicznych, to używaj ifa. A, i mam pytanie, jak dużo tych porównań było? (chodzi mi o to, ile operatorów tych użyłeś użyłeś) Jeśli to już taki problem, to napisz funkcję do i wsadź kod: // argument 0 - warunek 1 // argument 1 - warunek 2 // argument 2 - kod, jesli sie warunki spelnia operator = '||'; str = 'if ( '; str += argument[ 0 ] + ' ' + operator + argument[ 1 ] + ' ) ' + argument[ 2 ]; execute_code( str ); A używasz tak: do( <warunek1>, <warunek2>, <kod, jesli obydwa warunki polaczone operatorem || zwracaja prawde> ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Pental - ty wiesz, że to będzie z 10x mneij wydajne, niż po prostu na elseif-ach...? Wygoda to nie wszystko... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Oj, mylisz się, lubisz rozpoczynać flamewar, ale nie potrafisz go zakończyć... Nie pisz głupot, jaka wygoda? I jaka wydajność? Nudzi ci się w życiu, to łap łopatę i odśnieżaj podwórka sąsiadów... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Akurat Dawidds dobrze mówi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Wiem o tym, ale jeśli Kuba twierdzi, że to taki problem, to dałem mu przykład, jak może sobie sam to zaimplementować, choć to i tak w użyciu wygląda fatalnie, może mu się spodoba... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Jeny, po prostu daję Kubie radę, iż to jest na dłuższą metę niewydajne - jakby tego nie wiedział. Niech sobie chłopka przeanalizuje plusy i minusy i sam stwierdzi, czy warto tego używać. Ty wskazałeś plusy (1 - wygoda), ja musiałem wskazać minus (też jeden - wydajność (choć to akurat wina GM'a)). Ja nie lubię rozpoczynać "flamewarów" - to wy lubicie je znajdować w moich postach... :) PS: Tymon, fajny opis :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Hmm... Ale jakby się przyjrzeć, to są to zwykłe if'y, co najwyżej można się wolnego execute_string czepić, niczego więcej... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 15 Stycznia 2009 Administratorzy Udostępnij Opublikowano 15 Stycznia 2009 a co za problem połączyć switch z if ? GML switch moj_warunek { case 1: if warunek==2 { <costam> }; break; case 3: if warunek==4 { <costam> }; break; } lub jeżeli case może się powtarzać: GML switch moj_warunek { case 1: if warunek==2 { <costam>; break; } case 1: if warunek==3 { <costam>; break; } case 1: if warunek==4 { <costam> break; } /* Tak samo w sumie było by: case 1: if warunek==2 { <costam>; } else if warunek==3 { <costam>;} else if warunek==4 { costam> } break; */ } Bo przypominam, że to BREAK powoduje zakończenie sprawdzania warunków switch, więc jezeli nie wejdziemy w klamerki, to sprawdzi następne :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 Jedyny problem w tym, że jak ma używać switch tylko dla 2 warunków to lepiej użyć po prostu ifów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 ..I na tym kończymy zbędną dyskusję :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 GML switch moj_warunek { case 1: switch( warunek ) { case 1: /*akcja1*/;break case 2: /*akcja2*/;break case 3: /*akcja3*/;break } break case 2: . . . } :D. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 I co? Będziesz zagnieżdżał w sobie kilka switchów tylko po to by sprawdzić czy 2 klawisze są naciśnięte? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 nie, ale skoro wpadłem na pomysł to napisałem. może tu akurat nie, ale pewno gdzieś może to być użyteczne ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 15 Stycznia 2009 Administratorzy Udostępnij Opublikowano 15 Stycznia 2009 No wiesz, jak on to chce zrobić dla czterech klawiszy... to nie wiem o co cały płacz :P Co innego, gdyby robił dla stu xD Wtedy trzeba poszukać szybszego zapisu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Stycznia 2009 Udostępnij Opublikowano 15 Stycznia 2009 taką obsługę dla 100 to by chyba z rok pisał... 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ę