Skocz do zawartości

Huri

Użytkownicy
  • Postów

    37
  • Dołączył

  • Ostatnia wizyta

O Huri

  • Urodziny 01.02.1983

Informacje

  • Team
    MightyTom
  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Użytkownik Godot
    Nie

O mnie

Osiągnięcia Huri

Chicken

Chicken (1/13)

0

Reputacja

  1. [EDIT] Ok ... widać, że dopiero jak napisze posta z banalnym dla wyjadaczy pytaniem to wtedy znajduje rozwiązanie. Tym razem częściowe. Wystarczyło napisać to: GML if ladder { if !place_meeting(x,y-1,obj_ladder) {vsp=key_jump*-jumpspeed} grav=0; sprite_index=sprite43; if key_jump { vsp=key_jump*-jumpspeed; ladder=false;} else vsp = upper * -jumpspeed/4; } else grav=.4; Chcę poprawić nieco działanie systemu drabin w mojej grze platformowej. Aktualnie wszystko niby działa. Ale chciałbym żeby gdy postać jest na szczycie drabiny mogła skakać. Tutaj kod odpowiedzialny za moją drabinę. Kombinowałem już na różne sposoby z if'ami ale postać albo skacze na drabinie ale nie może wtedy zejść ze szczytu albo nie skacze ale za to moze zejsc w dół ze szczytu. w create jest tylko ladder=false; GML// -------------------------------- if (place_meeting(x,y+vsp,obj_ladder)) { while (!place_meeting(x,y+sign(vsp),obj_ladder)) { y+=sign(vsp); } ladder=true; vsp=key_jump*-jumpspeed; } // --------------------------------- if (!place_meeting(x,y+1,obj_ladder)) { ladder=false; } if place_meeting(x,y,obj_ladder) ladder=true; if ladder { if !place_meeting(x,y-1,obj_ladder) {vsp=key_jump*-jumpspeed} grav=0; sprite_index=sprite43; vsp = upper * -jumpspeed/4 } else grav=.4;
  2. Dobra chyba się udało... Działa dziwnie... Dwa uruchomienia z rzędu było failem ... ale później poszło i śmiga :) ...
  3. Patryk! Dziękuję :) Tego mi brakowało :) Ograniczenie wysokość (y) :) biaszczo :) Jak wrócę z roboty to sprawdzę bo tutaj nie mam GM:S. Chyba, że mógłbyś exe-ka podesłać :). Dzięki :) [b][EDIT][/b] Tak sobie przejrzałem teraz ten kod dla obiektu obj_gracz; Coś w ten deseń kombinowałem właśnie ale coś mi nie wychodziło. Być może byłem zmęczony. Tak czy inaczej później zbadam
  4. Cześć Być może ktoś pamięta grę Preliminary Monty albo Montezuma's Revenge. To gra z gatunku komnatówek ale mniejsza o to. W grzej tej jeden z przeciwników (czaszka) poruszała się odbijając się od ziemi jak piłka. Jak można coś takiego zrobić? O ile z poruszaniem się przeciwnika po ziemi i zmianie kierunku poruszania po napotkaniu na przeszkodę problemu nie mam o tyle to skakanie sprawia mi problem. Kombinowałem trochę z warunkami ale... no cóż. Rozumiem, że powinno być tak GMLIf onground Then wykonaj_odbicie Nie wiem tylko jak ma działać to wykonaj_odbicie. Pomoże ktos? Moją grę można wyprobować tutaj http://skeli.mightytom.pl chociaż to pierwsza wersja, którą już zdążyłem trochę poprawić (dodając kolizje, punkty respawnu po śmierci i jakieś duperelki). Niestety nie zdążyłem jeszcze wrzucić tej poprawionej wersji na serwer.
  5. Huri

    Lab Rats

    Jasne. To jedynie placeholdery :) Nad szczurami i serem spędziłem sporo czasu więc one zostają. Background wiem, że to porażka :). Tak samo wieżyczka i dzwignia. Teleport... Hm Nad tym jeszcze pomyślę :)
  6. Huri

    Lab Rats

    Tytuł: Lab Rats Gatunek: labiryntowo logiczno edukacyjna Opis: Jestem miłośnikiem gryzoni. Konkretnie szczurów. W ramach odpoczynku od mojego innego projektu, który stanął w martwym punkcie (problem z SI) postanowiłem zrobić coś nieco bardziej prostego. Do głowy przyszedł mi pomysł zrobienia gry, w której celem jest przeprowadzenie 3 szczurków przez labirynt. W trakcie projektu dochodziły nowe pomysły więc nie wystarczy tylko dotrzeć do końca. Po drodze napotkać można (tak już wszystko jest gotowe) na blokady w postaci strzelających wieżyczek, drzwi i kratek wentylacyjnych z gorącym powietrzem (trzeba je wyłączyć). Problem polega na tym, że szczurki jako zwierzęta stadne poruszają się jednocześnie (o ile nie zablokuje ich ściana) a do celu muszą dotrzeć w określonej kolejności. Na końcu labiryntu na dziewczyny (samiczki wzorowane na moich szczurzycach) czekają chłopaki ;). Parę tzw. "znajdziek" też jest w postaci np. kawałków sera, które zmniejszają ilość wykonanych ruchów (im mniej ruchów tym więcej pkt). Acha... są też teleporty :) W tej chwili mam już praktycznie wszystko skończone i działające. Pozostało mi do zrobienia - jakieś śmieszne menu - jakieś zabawne GUI - kilka-kilkanaście różnych poziomów do przejścia. Autorzy: Programowanie: Ja czyli Huri + pomoc z tego forum (skalowanie ekranu) Fabuła:Ja czyli Huri Grafika: Ja czyli Huri Muzyka: Ja czyli Huri Screeny:
  7. EDIT: Już wiem.. Działa... nie wywaliłem 2 linijek kodu ;) Kurcze. Przepraszam, że wykazuje się tu brakiem logicznego myślenia. Ale nie mogę dojść do tego co napisałeś. Ja mam tak przy rozdzielczości 960x540: GML maxx=max(obj_rat64.x,obj_rat2_64.x,obj_rat3_64.x);minx=min(obj_rat64.x,obj_rat2_64.x,obj_rat3_64.x); maxy=max(obj_rat64.y,obj_rat2_64.y,obj_rat3_64.y); miny=min(obj_rat64.y,obj_rat2_64.y,obj_rat3_64.y); max_distx=(maxx-minx); max_disty=(maxy-miny); view_xview = minx-128; view_yview = miny-128; view_wview = (max_distx)+512; view_hview = view_wview[0]*0.5625; I to działa świetnie... Czy mój kod na skalowanie w pionie powinien wyglądać tak? GML GML if max_disty>max_distx { view_wview = (max_disty)+512; view_hview = view_wview[0]*0.5625; } else { view_hview = max_disty+512; view_wview = view_hview*1.77; } Niby działa ale czasami zdarza się, że obiekty gracza znikają z ekranu. Zresztą pokaże jak to wygląda na filmie :)
  8. Generalnie to robiłem tak jak napisałeś. Z jedną małą ale istotną różnicą. Ale się nie przyznam na czym polegał mój błąd bo wstyd... Z nową wiedzą postaram się przerobić kod, który miałem dotychczas żeby jeszcze pion działał jak należy ;). Ale nie pogniewam się jak mi ktoś podpowie coś więcej ;)
  9. Cześć :) Ech dawno mnie tu nie było ale swoich projektów nie zarzuciłem totalnie. Zrobiłem sobie po prostu przerwę. Mam jednak wciąż ten sam problem. Szukałem na forum ale nie znalazłem nic konkretnego. Otóż mam 3 obiekty, którymi gracz steruje jednocześnie. Cały etap gry jest większy niż okno i w momencie gdy jeden z obiektów wydostaje się poza widoczny obszar viewport powinien się skalować z jednoczesnym zachowaniem proporcji a gdy nie ma takiej potrzeby (obiekty są blisko siebie) viewport powinien się zmniejszać. Jak można to osiągnąć? Doszedłem do momentu, w którym... Dobra. Nie będę zaśmiecał waszych głów tym co naskrobałem. Macie może jakieś pomysły? Jutro postaram się opisac problem dokładniej z obrazkami jeśli coś jest niezrozumiałe... Dodam też kod, który mam, ale obstawiam, że jest do wywalenia mimo, że działa "prawie" tak jakbym chciał... Pozdrawiam :)
  10. Kombinowałem już na wiele sposobów i sprawdzalem wiele stron w necie. Nie mam pojęcia jak to zrobić... Szkoda bo tylko tego brakuje mi do ukończenia gry. Reszta mechaniki jest praktycznie gotowa :( ... Będę wdzięczny za każdą pomoc :) EDIT: Jestem już bliski rozwiązania! View skaluje się dynamicznie z zachowanie proporcji... Czasami jednak zdarza się, że jeden obiekt jest niewidoczny (poza view)... ale to chyba kwestia tego o czym pisał I am Vader i jeszcze jednego warunku, który muszę dopisać :) EDIT2: Hm... Coś mam nie tak z wykrywaniem w pionie... poziomo działa dobrze... Pokombinuje :)
  11. Hm.. ok .. jak zachować proporcje ekranu? Funkcja mean się nie sprawdza w tym przypadku lepszy efekt uzyskałem z GML view_xview[0]=minx-64; view_yview[0]=miny-64; Co prawda nie działa to dokładnie tak jakbym chciał ale jestem wstanie się na to zgodzić... o ile zmiany w rozmiarze okna będą zachodziły proporcjonalnie...
  12. Tak tak kombinowałem z tym również. Mam jakieś zaćmienie i nie wiem co z tym zrobić. Nie potrafię ogarnąć tych prostych warunków :S. Tzn widok powiększa się ładnie... ale nie wiem jak napisać te warunki zeby się zmniejszał jeżeli jest taka możliwość. Największy dystans między obiektami wyznaczam w ten sposób: STEP GML maxx=max(obj_rat64.x,obj_rat2_64.x,obj_rat3_64.x); minx=min(obj_rat64.x,obj_rat2_64.x,obj_rat3_64.x); maxy=max(obj_rat64.y,obj_rat2_64.y,obj_rat3_64.y); miny=min(obj_rat64.y,obj_rat2_64.y,obj_rat3_64.y); max_distx=maxx-minx; max_disty=maxy-miny;
  13. Cześć :) Mam 3 obiekty, które poruszają się równocześnie i kolidują ze ścianami (top-down) więc mogą się na nich zatrzymać. Próbuje osiągnąć taki efekt, że wszystkie obiekty są zawsze widoczne w view. W momencie gdy jeden z tych obiektów wychodzi poza view[0] to widok view[0] zwiększa się proporcjonalnie tak aby wszystkie obiekty były widoczne. Ale chciałbym też żeby widok zmniejszał się gdy obiekty mogą być widoczne jednocześnie. Na tą chwilę nie potrafię tego lepiej wytłumaczyć. Szukam już długo informacji na ten temat ale albo źle szukam albo nie potrafię tego ogarnąć. Kod z powiększaniem się view[0] mam taki GML if obj_A.x > view_wview[0] ||obj_B.x > view_wview[0] || obj_B.x > view_wview[0] { view_wview[0]=view_wview[0]+128; view_hview[0]=view_hview[0]+128; } if obj_A.y > view_hview[0] ||obj_B.y > view_hview[0] || obj_C.y > view_hview[0] { view_wview[0]=view_wview[0]+128; view_hview[0]=view_hview[0]+128; } Jak cofnąć taką zmianę?
  14. Ok chyba już wiem jak się odwołać do instancji. Tak samo jak zmienne innych obiektów tylko nazwa to musi być ID w nawiasie (id).zmienna. EDIT: W momencie gdy w roomie mam dwa obj_lever i jeden z nich ma creation code to nie wykonuje żadnych rzeczy, ktore obj_lever powinien robić (zmiana wartosci switched). Przechowuje tylko zmienna lever_id :( EDIT2: Poradziłem sobie z powyższym. Miałem źle napisaną kolizję z obj_lever ;). Teraz każda z dźwigni (obj_lever) przełącza się osobno :)))
  15. Dzięki za podpowiedź. Wydaje się logiczne i myślałem właśnie w tym kierunku żeby łączyć za pomocą ID lub zmiennych. Nie wiedziałem jednak i w sumie nadal nie jestem tego pewny. Ale czy dobrze rozumiem? Gdy 'rysuje' level w room editorze to kliknięcie prawym klawiszem myszy na daną instancję (w moim przypadku obj_lever) i wybranie CREATION CODE i wpisanie tam np. przypisania zmiennej lever_id wartości 1 spowoduje, że tylko ta konkretna instancja obj_lever będzie miała tą zmienną z taką wartością a druga będzie miała wartość np. 2 (oczywiście o ile wpisze w jej kodzie lever_id=2)? To się później nie będzie mieszało z innymi instancjami obj_lever? Tzn eh... no gubie się wtym. :). Jak się odwołać do zmiennej konkretnych instancji obiektu? Pokombinuje.
×
×
  • Dodaj nową pozycję...