uzytkownik123
-
Postów
11 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez uzytkownik123
-
-
problem banalny, wiem, że trzeba to za pomocą lengthdir rozwiązać ale drugi dzień siedzę i nic.
//OBJ_PLAYER if obj_player.x<mouse_x {image_xscale=1} else {image_xscale=-1} //OBJ_ARM x=obj_player.x+lengthdir_x((16*obj_player.faktorx),obj_player.kontek) y=obj_player.y+lengthdir_y((16*obj_player.faktory),obj_player.kontek)
sprite obj_arm
jak zrobić żeby ramię ładnie celowało w kierunku kursora myszy?
-
właśnie problem w tym, że nie wiem co jest dobre. W gry nie gram już od hoho a teraz trendy są inne niż 20 late temu. Od strony technicznej mam silnik zrobiony raczej i teraz zabieram się za ten cały "feeling i jusicy" i zaczynają się schody. Nie wiem nawet jaki rodzaj kamery zrobić? gracz w centrum, czy kamera po okręgu dookoła gracza a wartość promienia stała? czy centrum między pozycją celownika a pozycją gracza? jak teraz się te topdowny w skrócie robi bo ja to sie na Crimsonlandzie zatrzymałem
-
próbuję zrobić fajny feeling przy strzelaniu do gry top down.
kombinuję z "shake screenem", view_anglem, zoomem viewa, ale zamiast feelingu wychodzi mi taki rozdrażniacz i rozpraszacz :/
macie jakieś praktyczne rady? funkcje których warto użyć? (GMS1.4) sprawdzone sposoby? patrzyłem też na yt ale dalej nie umiem odwzorować nic dobrego.
-
dla przeciwnika step: if !collision_line(round(x),round(y),round(obj_player.x),round(obj_player.y),obj_wall,1,1) { { dir = point_direction(round(x),round(y),round(obj_player.x),round(obj_player.y)); if dir > direction - (max_angle/2) && dir < direction + (max_angle/2) { widzi=1 ; } else widzi=0 } }else widzi=0
max_angle - kąt widzenia = 160
przy directionie przeciwnika 0, direction - (max_angle/2) = -80. jeśli dir = 350 to przeciwnik nas nie widzi, mimo że jesteśmy w polu.
póki zakres pola widzenia jest >0 jest ok.
czy można to jakoś łatwo naprawić? czy robić każdemu przeciwnikowi obiekt w kształcie pola widzenia i badać czy gracz wchodzi z nim w kolizje i nie ma ściany między nim a przeciwnikiem?
wolałbym to rozwiązać w miarę możliwości GM8. ewentualnie GMS1.4
-
na stronie gmclan jest przykład na pole widzenia top down. ma on jednak błąd, bo przy pewnym ustawieniu mimo znajdowania się w polu przeciwnik nas nie widzi. Da się to jakoś naprawić? Sam kombinowałem właśnie w ten sposób zanim znalazłem przykład, ale nie umiem tego dopracować.
-
znaczy mam jeszcze tak:
obj_wrog=instance_nearest(x,y,wrog)
bez warunku ostatnicel=obj_wrog.id zadaje obrażenia, ale jak tylko go dodam to już nie i nie wiem dlaczego?
Dnia 3.03.2020 o 23:35, gnysek napisał:Jeśli są dwa obj_wrog, to zawsze zwraca ID tego stworzonego jako pierwszego w tym przypadku, więc gdy kolizja jest z drugim to i tak zapamiętuje pierwszego.
czyli powinien zadawać obrażenia i tak.
czy GMS wykonuje kod tak samo jak GM8? czyli wierszami po kolei czy jakoś inaczej?
albo jak zrobić to jakoś inaczej. pocisk ma speed 0.5 i żeby ranił tylko raz każdego przeciwnika przez którego przelatuje?poszło w drugą stronę: wróg podczas kolizji bada wartość "pocisk", jeśli <other.id {hp-=other.damage pocisk=other.id}
ale czemu na odwrót nie działało to nie mam pojęcia
-
Pomóżcie, bo ostatnio przesiadłem z GM8 na GMS1.4 i zgłupiałem
taki kod dawałem zawsze w pocisku, w razie gdyby kolidował z przeciwnikiem więcej niż przez 1 step (żeby ranił wroga tylko 1 raz)
if place_meeting(x,y,obj_wrog) and !ostatnicel=obj_wrog.id {obj_wrog.hp-=damage ostatnicel=obj_wrog.id}
i działało. W GM1.4 nie działa. Podzieliłem na 2 części - obrażenia w begin step, ostatnicel=obj_wrog.id w end step. dalej nie działa. co jest nie tak?
-
za nic nie mogę się z tym uporać.
bo rozumiem, że problem jest tego typy, że bohater sprawdza pozycję na sobą i jest ona wolna, platforma sprawdza pod sobą i jest wolna, więc nachodzą na siebie.
Jak tego uniknąć? Że jeśli bohater nie ma gruntu pod nogami, to żeby go przesunęło w dół, a dopiero kiedy nie ma gdzie się podziać to ginie w wyniku kolizji??
-
no własnie to nie do końca takie proste. dodam że obiekty mają wymiary 32x32 i origin w punkcie centralnym
-
Używam w swojej grze ruchu platformowego zrobionego na zasadzie jak w tym linku:
Wszystkie obiekty poruszają się na tej samej zasadzie, obj_wall to przeszkoda, platforma ma w parencie obj_wall
Obj_player ma w stepie:
GMLif place_meeting(x,y,obj_wall) {/*i tutaj że umiera*/}Mam problem z platformą. Porusza się ona pionowo. W momencie, kiedy platforma jedzie w dół, a my jesteśmy pod nią i skaczemy dochodzi do kolizji i bohater umiera.
Jak zrobić, żeby w sytuacji, kiedy platforma zjeżdża w dół, pod nią jest bohater, który nie stoi na podłożu, bohater był przesunięty, tak żeby nie doszło do kolizji miedzy obiektami?
Próbowałem z place_meeting, różnymi kolizjami, umieszczałem to w stepie, end stepie i begin stepie i nic, nie wiem dlaczego.
-
Tylko, że u mnie nie byłoby żadnych postaci do odblokowania, a chce żeby zbieranie znajdziek miało jakiś sens.
Myślałem nad rozwiązaniem jak w Rayman 2 - na planszach są pieniążki czy coś i co kilka poziomów trzeba mieć zebraną ich określoną ilość, aby przejść dalej. Jeśli nie mamy tyle ile trzeba to przechodzimy uprzednie poziomy jeszcze raz i zbieramy resztę pozostawionych monet. Przyjmie się to?
-
Witam. Chciałbym się was poradzić w pewnej sprawie. Otóż mam zamiar wydać grę, platformówka (coś jak meat boy). Nie wiem tylko jak rozwiązać problem życia, savów i znajdziek, tak aby było to grywalne i z sensem. Z "graniem w gry" zatrzymałem się na tytułach z końca lat 90'tych/ początku XXI wieku, a widzę że teraz w grach stosuje się inne rozwiązania.
lerp(dir1,dir2)
w GM:Studio 1.x
Opublikowano
mam wartości dir1 i dir2 odpowiednio dla dwóch kierunków
i jest
dir1=lerp(dir1,dir2,0.5)
problem pojawia się kiedy przykładowo dir1= 15 stopni a dir2 300 i nie chce aby dir1 rósł do dir2 po całym okręgu tylko po najkrótszej drodze, jak to zrobic?