Sirluki Opublikowano 26 Kwietnia 2008 Udostępnij Opublikowano 26 Kwietnia 2008 Wiem, że to już było tysiące razy, ale dalej się z tym motam - szukałem i dalej nie mam optymalnego rozwiązania. Mianowicie: Jak zrobić (najlepiej w evencie Mouse - left pressed), że kiedy klikne pierwszy raz to spełniona zostaje akcja 1 a kiedy klikne drugi raz, to spełniona zostaje akcja 2. Robiłem to tak: GML switch (sprite_index = sprite0) { case 0: image_speed = 0.2 sprite_index = sprite0; break; case 1: sprite_index = sprite1 instance_destroy(); break; } i niezbyt dobrze to działa, tzn. nie usuwa objektu. Proszę o pomoc, bo nie za bardzo wiem jak to zrobic. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 26 Kwietnia 2008 Udostępnij Opublikowano 26 Kwietnia 2008 W Global Mouse Left Pressed czy gdzie tam chcesz: GML klikniecie += 1; //ify na sprawdzanie klikniecie czy 1 czy 2 //akcje } STEP: GML if klikniecie =>2 {klikniecie = 0} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 26 Kwietnia 2008 Autor Udostępnij Opublikowano 26 Kwietnia 2008 Wiem, że można zrobi to na zmiennych, ale nie można prościej? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 26 Kwietnia 2008 Udostępnij Opublikowano 26 Kwietnia 2008 Create jakiegoś obiektu ( najlepiej kontrolera ): GML global.click=0; Wciśniecie myszki ( global ): GML global.click+=1; alarm[0]=10; Alarm[0]: GML global.click=0; A tu sprawdzanie w obiekcie ( wciśnięcie myszki: ): GML if(global.clink>1) { // gdy wciśniemy global.click=0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 26 Kwietnia 2008 Udostępnij Opublikowano 26 Kwietnia 2008 IMO tak jest "najbezpieczniej" i najwydajniej. Raczej prościej nie zrobisz ;) @UP: Prawie tak samo =p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 26 Kwietnia 2008 Autor Udostępnij Opublikowano 26 Kwietnia 2008 Create jakiegoś obiektu ( najlepiej kontrolera ): GML global.click=0; Wciśniecie myszki ( global ): GML global.click+=1; alarm[0]=10; Alarm[0]: GML global.click=0; A tu sprawdzanie w obiekcie ( wciśnięcie myszki: ): GML if(global.clink>1) { // gdy wciśniemy global.click=0; } W jedną stronę działa, w drugą już nie :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 26 Kwietnia 2008 Udostępnij Opublikowano 26 Kwietnia 2008 if(global.clink>1) { // gdy wciśniemy global.click=0; } masz literówkę :P proponuje tak: GML //[create] click = false //[global mouse pressed] if ( click ){ click = false //akcja po podwójnym kliknięciu } else { click = true alarm[0] = 10 } //[alarm(0)] if ( click ) click = false Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 26 Kwietnia 2008 Autor Udostępnij Opublikowano 26 Kwietnia 2008 masz literówkę :P proponuje tak: GML //[create] click = false //[global mouse pressed] if ( click ){ click = false //akcja po podwójnym kliknięciu } else { click = true alarm[0] = 10 } //[alarm(0)] if ( click ) click = false Tzn. jest dobrze, ale chodziło mi o to, że wystarczy kliknąć raz na obiekt i wykonana zostaje akcja 1 a jak klikniesz drugi graz na obiekt, to wykonana zostaje akcja 2. :) Mozesz powiedzieć jak to poprawić w Twoim kodzie? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 26 Kwietnia 2008 Udostępnij Opublikowano 26 Kwietnia 2008 GML //[create] click = false //[global mouse pressed] if ( click ){ click = false //akcja po podwójnym kliknięciu } else { //akcja jednego kliknięcia click = true alarm[0] = 5 } //[alarm(0)] if ( click ) click = false powinno działać :P PS. poprawne użycie switcha: GML switch (<warunek>) { case <wartosc_1>: <instrukcje_1>; ...; break; case <wartosc_2>: <instrukcje_2>; ...; break; ... default: <instrukcje>; // inna od podanych wyżej wartości } także całość "sprite_index = sprite0" będzie błędem jak już to samo "sprite_index" i wtedy case sprite0:... case sprite1:... itd ;) 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ę