Arekadiusz Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 Witam wszystkich po długiej przerwie! Chcę, aby obiekt lufa jeżeli wykryje, że obiekt pojazd jest gzieś w jej okolicy (np. 40 pixeli) zaczęła strzelać do pojazdu, ale jeżeli pojazd wyjdzie za te 40 pixeli to aby przestała i także aby przestała gdy obiektowi pojazd skończy się życie, a następnie szukała kolejnego obiektu pojazd i w niego strzelała. Dodatkowo chciałbym także, aby lufa się obracała, w tym kierunku w którym strzela. Dodam także że obiektów pojazd będzie kilka. Jak to zrobić? Proszę o pilną pomoc! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 GML if( instance_number(obj_pojazd)>0 ) //sprawdzamyt czy istnieje jakis pojazd { var_obj=instance_nearest(x,y,obj_pojazd); //jesli tak to sprawdzamy ktory jest najblizej if( distance_to_object(var_obj)<40 ) //jesli jest blizej niz 40 to zaczyna strzelac { //kod strzelania } } Co do obracania to pokombinuj z image_angle Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MagnusArias Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 GML (DRAW) obj = instance_nearest(x,y,obj_pojazd); image_angle = point_direction(x,y,obj.x,obj.y); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2010 Autor Udostępnij Opublikowano 15 Września 2010 @Danielus: Działa, ale jeszcze nie napisałeś mi jak zrobić aby wystrzelony pocisk leciał w ten obiekt. Jak to zrobić? @MagnuArias: A jakiś sposób dla wersji lite? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 Wiesz po co jest FAQ? Warto tam czasem looknąć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MagnusArias Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 Na tworzenie obiektu, nie jestem pewien czy działa w Lite. Poza tym pisze jeszcze w GM7, więc mogą być małe problemy. GML if( instance_number(obj_pojazd)>0 ) //sprawdzamy czy istnieje jakis pojazd { var_obj=instance_nearest(x,y,obj_pojazd); //jesli tak to sprawdzamy ktory jest najblizej if( distance_to_object(var_obj)<40 ) //jesli jest blizej niz 40 to zaczyna strzelac { a = instance_create(x,y,obj_pocisk); // Tworzymy obiekt... a.speed = 20; // ...ustawiamy mu predkosc... a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2010 Autor Udostępnij Opublikowano 15 Września 2010 @Roki: Znalazłem, sprawdziłem i obraca mi się, ale źle. Jak naprzykład pojazd jest na dole to lufa obraca się w lewo :blink: . @MagnuArias: Działa. Tylko obracanie lufy jeszcze mi nie działa. EDIT: Jak ograniczyć aby pociski nie leciały jeden za drugim tylko co jakiś czas? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MagnusArias Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 Step lufy GML if keyboard_check(vk_left) { direction +=2; } else if keyboard_check(vk_right) { direction-=2; } W tym samym obiekcie przy kliknięciu spacją możesz użyć alarmu albo własnego timera. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2010 Autor Udostępnij Opublikowano 15 Września 2010 Step lufy GMLif keyboard_check(vk_left) { direction +=2; } else if keyboard_check(vk_right) { direction-=2; } W tym samym obiekcie przy kliknięciu spacją możesz użyć alarmu albo własnego timera. Nie rozumiesz. Chodzi mi, aby lufa obracała się automatycznie w strone tego samochodu. I mam wersje lite. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 ta lufa ma mu sie chyba automatycznie obracac... skoro sie zle obraca to zmien GML image_angle = point_direction(x,y,obj.x,obj.y); na np: GML image_angle = point_direction(x,y,obj.x,obj.y)-90; jak bedzie źle to zmieniasz tak az będzie dobrze. strzelanie co jakis czas: GML if( instance_number(obj_pojazd)>0 ) //sprawdzamy czy istnieje jakis pojazd { var_obj=instance_nearest(x,y,obj_pojazd); //jesli tak to sprawdzamy ktory jest najblizej if( distance_to_object(var_obj)<40 ) //jesli jest blizej niz 40 to zaczyna strzelac { if( alarm[0]==-1 ) //jesli alarm0 nie jest aktywny... { alarm[0]=room_speed*3; //..ustawiamy go na 3 sec } } } a w alarm0: GML a = instance_create(x,y,obj_pocisk); // Tworzymy obiekt... a.speed = 20; // ...ustawiamy mu predkosc... a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek</span></span></span> jak w lite nie dziala image_angle to bedziesz mial problem :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 @up: wersja lite nie daje dostępu do image_angle Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2010 Autor Udostępnij Opublikowano 15 Września 2010 @Danielus: jak w lite nie dziala image_angle to bedziesz mial problem :) No właśnie go mam i pytam się czy można dla wersji lite jakoś to rozwiązać :rolleyes: . A co do tego co mi podałeś jest dobre, tylko że po strzale i zniknięciu pojazdu pokazuje się taki błąd: ___________________________________________ ERROR in action number 1 of Alarm Event for alarm 0 for object lufa: Error in code at line 3: a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek ^ at position 44: Unknown variable x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
flipper Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 Jest na ten temat w FAQ. Tworzysz animację obracającej się lufy, a w step wpisujesz: GML direction=point_direction(x,y,var_obj.x,var_obj.y) image_single = direction * image_number/360; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 widocznie wtedy obiekt juz nie istnieje( np zniszczyl go wczesniejszy pocisk ) dodawaj przed tym sprawdzanie czy ten obiekt istnieje: if( instance_exists(var_obj ) ) { a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek } else{ with(a){instance_destroy();} } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 15 Września 2010 Autor Udostępnij Opublikowano 15 Września 2010 @fliper spójrz kilka postów wyrzej: @Roki: Znalazłem, sprawdziłem i obraca mi się, ale źle. Jak naprzykład pojazd jest na dole to lufa obraca się w lewo :blink: . @danielus: dzięki teraz jest git :thumbsup: A nie ma żadnego innego sposobu na obracanie oprócz tego z faq? Albo mógłby mi ktoś zrobić przykład. Może źle animacje robie albo coś... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 15 Września 2010 Udostępnij Opublikowano 15 Września 2010 Animacja w spricie musi być obrócona w prawo aby się prawidłowo obracała w tym skrypcie :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 16 Września 2010 Autor Udostępnij Opublikowano 16 Września 2010 @up: nie działa mi! A co mam wpisac w pole number of frames? Ja wpisuje 360. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MagnusArias Opublikowano 16 Września 2010 Udostępnij Opublikowano 16 Września 2010 Mniej, jakieś 64. Za duża liczba spowolni ci grę. E: Jakbyś chciał, daję przykład z poruszaniem się czołgu, strzelaniem i obracaniem lufy. Uploader 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ę