Skocz do zawartości

kt1117

Użytkownicy
  • Postów

    1 103
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez kt1117

  1. Właśnie o tym mówiłem, ale w większości gier obiekty są ustawione bardziej bliżej siebie, a ten kod nie powinien zabrać zbyt dużo FPS.
  2. Wiadomo, że można napisać taki z ekranem itd. ale chodziło o prosty przykład. Tutaj jest mało kodu. Tam trzeba by robić wszystko na osobnych instancjach, albo pisać kod sprawdzający pozycję myszki itd. Taki kod jest niezbyt modyfikowalny, a to co podałem, sprawdzi się, bo wystarczy podpiąć kawałki kodu pod przyciski i kontroler, i sprawa załatwiona.
  3. Najlepiej by było napisać funkcję, zwracającą najmniejszy kąt, pomiędzy 2 liniami. Spróbuję coś wymyślić, bo wydaje mi się, że tak będzie najłatwiej. E:Sprawdźcie czy dobrze działa: GML ax1=argument0 ay1=argument1 ax2=argument2 ay2=argument3 bx1=argument4 by1=argument5 bx2=argument6 by2=argument7 kba=point_direction(ax1,ay1,ax2,ay2) kbb=point_direction(bx1,by1,bx2,by2) return abs(kba-kbb) E2:Teraz łatwo wprowadzić w życie mój pomysł: 1.Za pomocą kombinacji lenghdir'ów collision_line i wyszukiwania binarnego wyznaczasz współrzędne dwóch liń, które idą 1* w lewo i w prawo od kierunku bohatera, aż do napotkania przeszkody. 2.Między końcami tych liń od strony przeszkody wyznaczasz trzecią linię. 3.Za pomocą mojej funkcji wyliczasz kąt między linią strzału lasera a przeszkodą. 4.Dostajesz kąt odbicia, wykonujesz na nim działanie: GML kat=kat+(180-(kat*2)) E3:Na kulach najlepiej działa z bliska, na płaskich powinno nie mieć to wpływu. Chodzi o to, że kąt rozszerza się, tzn. im dalej od wierzchołka mierzysz odległość między ramionami, tym ta odległość jest większa.
  4. Nie no gratulacje. Za wytrwałość przede wszystkim. Naprawdę jak wszedłem na tą stronę to nie mogłem uwierzyć. Grafika (przynajmniej na screenach) bardzo dobrze dopasowana. Najważniejsze, że nie poddałeś się po nieudanej "1-ce".
  5. Dam Ci kod. Nie mam gm'a przy sobie. GML (Create obiektu) do dzial=get_string("Podaj znak działania","+") while (dzial="+" or dzial="-" or dzial="*" or dzial="/" or or dzial="^") do l1=get_interger("Podaj 1 liczbę",1) l2=get_interger("Podaj 2 liczbę",2) while (!(dzial="/" and l2=0)) if dzial="+" show_message(string(l1+l2) if dzial="-" show_message(string(l1-l2) if dzial="*" show_message(string(l1*l2) if dzial="/" show_message(string(l1/l2) if dzial="+" show_message(string(pow(l1,l2)) E:Mały błąd był.
  6. Trochę trudniej będzie jeśli chodzi o kąt. Ale możesz sprawdzać odległość dwóch linii między bohaterem a przeszkodą. Linie te tworzyły by kąt powiedzmy 5 stopni. Wtedy dostajesz na boki trójkąta i za pomocą sinusów kosinusów itd. obliczasz trzeci. Dzięki temu dostaniesz trójkąt w którym będziesz musiał wyznaczyć kąty między resztą boków. Wybierzesz sobie jeden z nich (wyjdzie w praniu który) i masz problem rozwiązany. Kodu Ci nie napiszę, bo nie pamiętam wzorów na te wszystkie kąty.
  7. Vspeed nieraz się przydaje. Na pewno jest lepsze od gravity. Można też samemu operować na y, ale wygodnie jest pisać platformówki z użycie tejże zmiennej. Jednak zgodzę się z tym, że hspeed jest praktycznie do niczego.
  8. kt1117

    Mandat

    Totalitaryzm to również zabijanie. Może nie siekają ludzi na ulicy jawnie karabinami, ale dla propagandy mogą zabić i pół społeczeństwa.
  9. Wiem, że nie zadziała. Chodziło mi tylko o sposób. Nie wiem jak wygląda reszta kodu. Nie robił bym tego tak jak tu jeśli bym pisał grę, tylko użył kolizji z kołem, ale nie chciałem mu za bardzo mieszać w kodzie.
  10. Teraz wpadłem na dobry pomysł, zrób to rekurencją. Czyli: 1.Tworzysz funkcję:dynamit_aktywacja 2.Piszesz w niej: GML alarm[2] = 150 if(position_meeting(x-32, y, dynamit)){ dynamit_aktywacja() } I w Evencie, z którego kod dałeś w pierwszym poście dajesz: GML dynamit_aktywacja() Teraz, gdy aktywujesz dynamit, aktywuje on następny, a ten następny, aż skończą się pobliskie dynamity.
  11. Możliwe, że się do Ciebie uprzedziłem, ale poco obrażasz ludzi, których prosisz o pomoc? Wg. mnie jest to niezbyt logiczne.
  12. kt1117

    Mandat

    A ja jestem za słowami Sernata, ponieważ i totalitaryzm i homoseksualizm prowadzą do zagłady ludzkości, pierwszy po prostu przez zabijanie, drugi przez to, że nie będzie na świecie dzieci. A jeśli chodzi o spór o słowa głupi-idiota, to nie chodzi tu chyba o znaczenie, ale raczej zabarwienie. Jeśli nazwiesz kogoś idiotą, to uważasz że jest bardziej głupi, od kogoś kogo nazwałeś głupkiem. Ale ja jestem jeszcze młody, to mogę pierdzielić farmazony. Jak coś to mnie poprawcie.
  13. Chodzi o to, żeby po prostu ściągnąć program z neta.
  14. Witam. Mam problem z Linuksem. Umiem jedynie dodać pakiet, który widnieje na liście w Synaptic'u. Trzeba najpierw zainstalować paczkę, potem dodać adres ATP do list repozytoriów, a następnie dodać klucz GPG. Ale jak dodać nowy plik do tej listy na samym początku? Proszę o pomoc.
  15. To samo co w kodzie aktywacji 1 dynamitu? Ludzie, myślcie trochę.
  16. Ale kamerą może przecież będzie chciał kręcić. Wtedy trochę jest zabawy żeby dobrać dobre liczby.
  17. kt1117

    Szukam programu

    Dzięki, poszukam. A powiedz mi jeszcze czy wchodzi w grę ustawianie napisów na radiu. Tych co lecą i pisze RMFFM najlepsza muzyka, albo Radio zet coś tam coś tam.
  18. kt1117

    Szukam programu

    Nie dostałem żadnej płyty. Nagrywam secure disk creatorem.
  19. Może ja spróbuję to wytłumaczyć. Więc tak. Jak chcesz robić w 3d, to wszystkie sprity co chcesz użyć odwracasz do góry nogami. Wszystkie znaki przy y w kodzie 2d odwracasz(czyli jak masz + dajesz -) to samo z vspeed. Dodatkowo do direction w kodzie 2d dodajesz 180. To wszystko. Inaczej się nie da. Taki urok 3d w GM'ie.
  20. Wyjdzie Ci mnóstwo Poly i raczej nie użyjesz tego w grze. będzie kropnie muliła.
  21. kt1117

    Szukam programu

    Szukam darmowego odpowiednika MP3 CD maker 2.0 bez debilnych ograniczeń.
  22. kt1117

    Muzyka country

    Polskie country.
  23. Mogę udostępnić. Ale nie działa to w stu procentach. GML (Step) if image_angle!=0 { ky=y+lengthdir_y(256,image_angle) kx=x+lengthdir_x(256,image_angle) sry=y+lengthdir_y(128,image_angle) srx=x+lengthdir_x(128,image_angle) } if x>kx roz=10 else roz=-10 if collision_line(x+roz,y+33,srx-roz,sry+33,all,1,0) image_angle-=1 if collision_line(srx+roz,sry+33,kx-roz,ky+33,all,1,0) image_angle+=1 GML (Draw) draw_sprite_ext(sprite11,0,x,y,1,1,image_angle,image_blend,1) //ten kod w celu debugu draw_set_color(c_blue) draw_line(x+roz,y+32,srx-roz,sry+32) draw_set_color(c_green) draw_line(srx+roz,sry+32,kx-roz,ky+32) Te wszystkie 32 zamień na wysokość sprita. Reszta eventów z poprzedniego kodu. Wartość roz też zmień sobie. pod deską pojawią się kolorowe kreski, jak jedną "przerwiesz" to obiekt się przekręci. Później wywal ten kod z drawa "ten do debugu". Następnie w kodzie bohatera do każdego if place_free dopisz && !place_meeting, tylko z odwróconym znakiem. I jak przed place_free masz wykrzyknik to && zmień na or.
  24. kt1117

    Muzyka country

    Ale tam trochę za mało tej muzyki. ;)
×
×
  • Dodaj nową pozycję...