Sirluki Opublikowano 24 Grudnia 2007 Udostępnij Opublikowano 24 Grudnia 2007 Witam ponownie. Znów mam problem, tym razem na tyle powazny, ze przez ostatnie 2h "rozwiazywania" go, juz mnie boli glowa. Wiec zaczene od obrazka, ktory mi pomoze wyjanic to wszystko: To tak: Mam postac obj_postac_1 i przy nacisnieciu klawisza ctrl Gm rysuje objekt obj_pocisk który wylatuje z głowy (orgin obj_postac_1 jest ustawiony na center, wiec to dlatego). Karabin na rysunku to sprite, nie obiekt. I tutaj jest problem: nie moge zrobic tego, ze obj_pocisk wylatuje z miejsca na obrazku zaznaczonego zielonym kolkiem. Ale to nie koniec, bo moge zawsze zmienic orgin pocisku i po problemie, ale jesli zaczene ruch postacia (np. obroze ja o 180 stopni) i nacisne ctrl (klawisz strzalu) to pocisk rysuje wogole za plecami postaci i przez nia przelatuje, a co za tym idzie - odbiera jej hp. To sie wydaje troche zagmantwane, ale w rzeczywistosci to latwe do pojecia :/ Umiaszczam tez silnik, abyscie mogli zobaczyc i powiedziec (ew. poprawic) jak to naprawic. Prosze, to dla mnie bardzo wazne, bo juz naprawde nie mam sily a niechcialbym rezygnowac z tego projektu :) PS. wiem ze wiele ryzykuje dajac tutaj ten silnik wraz z grafika, ale to dla mnie naprawde bardzo wazne. Ogólnie chodzi o to, zeby posick wylatywal zawsze z zielonego punktu pomimo tego, pod jakim katem obroce postac. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 24 Grudnia 2007 Udostępnij Opublikowano 24 Grudnia 2007 Trzeba pokombinować z lengthdir_x i lengthdir_y :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 24 Grudnia 2007 Udostępnij Opublikowano 24 Grudnia 2007 x+lenghtdir_x(dystans,kierunek); // W "kierunek" wpisz "direction" y+lenghtdir_y(dystans,kierunek); // W "kierunek" wpisz "direction" ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 24 Grudnia 2007 Autor Udostępnij Opublikowano 24 Grudnia 2007 x+lenghtdir_x(dystans,kierunek); // W "kierunek" wpisz "direction" y+lenghtdir_y(dystans,kierunek); // W "kierunek" wpisz "direction" ;p Ale gdzie to wstawic i co ma znajdowac sie w polu "len" (dystans)? Chodzi mi o to czy mam tam wpisac liczbe jak np. 25 (pikseli) czy cos innego? :huh: Prosze, bo to naprawde bardzo wazne dla mnie :) Mam to umiescic w create pocisku czy w kodzie ktory tworzy pocisk? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 24 Grudnia 2007 Udostępnij Opublikowano 24 Grudnia 2007 Do STEP bohatera wstaw mniej więcej coś takiego: if keyboard_check_pressed(vk_ctrl) { var nowyobj; nowyobj = instance_create(x + lengthdir_x(14,image_angle - 4),y + lengthdir_y(14,image_angle - 4),obj_pocisk); nowyobj.direction = image_angle nowyobj.speed = 6 } Ale gdzie to wstawic i co ma znajdowac sie w polu "len" (dystans)? W "dystans" wpisz dystans w pixelach :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 25 Grudnia 2007 Udostępnij Opublikowano 25 Grudnia 2007 zamiast: switch(aktywna) { case 0: if (b[0,1]>0) // jeśli stan amunicji jest więksy od zera { a=instance_create(x,y,obj_pocisk)// twozy pocisk a.direction= obj_postac_1.direction //nadaje mu kąt a.speed=b[0,2] //nadaje mu speed a.damage=b[0,3] //definiuje zmienna demage b[0,1]-=1 // odejmuje od stanu amunicji jeden pocisk } break //itd... wstaw switch(aktywna) { case 0: if (b[0,1]>0) // jeśli stan amunicji jest więksy od zera { a=instance_create(x+lengthdir_x(60,direction-10),y+lengthdir_y(60,direction-10),obj_pocisk)// twozy pocisk a.direction= obj_postac_1.direction //nadaje mu kąt a.speed=b[0,2] //nadaje mu speed a.damage=b[0,3] //definiuje zmienna demage b[0,1]-=1 // odejmuje od stanu amunicji jeden pocisk } break //itd i po kłopocie ;) Tylko pamiętaj że do każdej broni musisz trochę dostosować te parametry. w lenghtdir w pierwszym argumencie masz odległość od środka gracza, a w drugim przesunięcie w bok o ileś stopni. Pozdrawiam ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sirluki Opublikowano 25 Grudnia 2007 Autor Udostępnij Opublikowano 25 Grudnia 2007 zamiast: switch(aktywna) { case 0: if (b[0,1]>0) // jeśli stan amunicji jest więksy od zera { a=instance_create(x,y,obj_pocisk)// twozy pocisk a.direction= obj_postac_1.direction //nadaje mu kąt a.speed=b[0,2] //nadaje mu speed a.damage=b[0,3] //definiuje zmienna demage b[0,1]-=1 // odejmuje od stanu amunicji jeden pocisk } break //itd... wstaw switch(aktywna) { case 0: if (b[0,1]>0) // jeśli stan amunicji jest więksy od zera { a=instance_create(x+lengthdir_x(60,direction-10),y+lengthdir_y(60,direction-10),obj_pocisk)// twozy pocisk a.direction= obj_postac_1.direction //nadaje mu kąt a.speed=b[0,2] //nadaje mu speed a.damage=b[0,3] //definiuje zmienna demage b[0,1]-=1 // odejmuje od stanu amunicji jeden pocisk } break //itd i po kłopocie ;) Tylko pamiętaj że do każdej broni musisz trochę dostosować te parametry. w lenghtdir w pierwszym argumencie masz odległość od środka gracza, a w drugim przesunięcie w bok o ileś stopni. Pozdrawiam ;) Jejku, działa :) Jest super. Bardzo dziekuje wszystkim i o wszystkich z was wspomne w credits :) Tematu nie zamykam, nigdy nie wiadomo co sie stanie :) 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ę