Sirluki Opublikowano 24 Grudnia 2007 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.
Yoda Opublikowano 24 Grudnia 2007 Opublikowano 24 Grudnia 2007 Trzeba pokombinować z lengthdir_x i lengthdir_y :P
Konrad-GM Opublikowano 24 Grudnia 2007 Opublikowano 24 Grudnia 2007 x+lenghtdir_x(dystans,kierunek); // W "kierunek" wpisz "direction" y+lenghtdir_y(dystans,kierunek); // W "kierunek" wpisz "direction" ;p
Sirluki Opublikowano 24 Grudnia 2007 Autor 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?
Snake Opublikowano 24 Grudnia 2007 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
Uzjel Opublikowano 25 Grudnia 2007 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 ;)
Sirluki Opublikowano 25 Grudnia 2007 Autor 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 :)
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ę