Hallo leude ich mach grad ne engine für mein Spiel und hänge da grade fest.
Ich wollte ein 2d top down ragdoll machen, damit ich nicht für jede bewegung ein anderen sprite für jedes kostüm machen will -.-
Daher wollte ich dann nen ragdoll von oben machen, wo Beine seine textur langziehen sollen wenn er geht, ich weiss wies geht, aber ich wollte es noch mit den armen machen, also das die waffe sagt "hier mit hand nehmen. Das weiss ich auch schon, wies geht, aber meine arme spinnen herum wenn ich es starte und manches funzt net so gut
Aber ich habe mal ne skizze gemalt:
Die Blauen Punkte sind das zentrum der objekte. Also bei der Linken Schulter sollte es zuerst zum zentrum gehen, die selbe direction haben und dann -90° machen und eine geschwindigkeit von 16 haben, somit es in ein step am rand ist. Aber leider geht es nur bei mir mit 2 steps, weil es ja zeit braucht um hinzukommen und dann ja den speed wieder auf 0 zu setzen. dann soll der image_angle von seinen punkt aus zum linken Ellenbogen gehen. Das geht ja auch.
Dann soll der linke ellenbogen den maximalabstand zur schulter haben und zwar 20. Somit machte ich , dass er zur schulter mit direction guckt und speed=LEl.dirsh(das sind 20)-point_distance(LEl.x,LEl.y,LSh.x,LSh.y).<-- Das macht er während die variable step=1 ist. Dann kommt step 2 und habe ihn dann zur hand die direction gucken lassen und speed=LEl.dirha(das sind 20)-point_distance(LEl.x,LEl.y,LHa.x,LHa.y) gemacht. Somit sollte es jeden step in der reichweite bleiben. Zum schlusshabe habe ich mit Left hand gemacht, dass es nicht ausser reichweite kommt also hingucken lassen und LHa.dirsh(das sind LEl.dirsh+LEl.dirha also 40)-point_distance(LSh.x,LSh.y,LHa.x,LHa.y)
Dann habe ich die Arme einfach zu ihren Punkten gesetzt und sie zum nächsten objekt gucken lassen(gestrichelt).
ALLES WIRD VON OBJ_BODY GESTEUERT UND IN DEN ANDEREN OBJEKTEN IST NICHTS AUSSER DEN SPRITE
Also so sollte es ja auch sein.
obj_body:
Alles anzeigen
Alles anzeigen
1.Problem: Immer jeder 2. step ist es bei seinen punkt angelangt und nicht gleich am ersten,gerade macht es immer so ein flackern.
2.Problem: Irgendwie läuft der Linke Ellenbogen sich weg und geht ausserhalb des Bildschirms.
Ich hab ne gmk hochgeladen und euch den code zu geben:
+/-= geschwidnigkeit ändern
am anfang ist es auf 1 um es euch zu zeigen
P.S: Sorry für die scheiss Grammatik oder wenn ihr es nicht versteht. Kann net so gut erklären.
EDIT: Oops vergessen gmk hochzuladen
EDIT2: OK IST DAS EINE SACHE FÜR DIE EXPERTENRUNDE? BITTE UM ANTWORT
Ich wollte ein 2d top down ragdoll machen, damit ich nicht für jede bewegung ein anderen sprite für jedes kostüm machen will -.-
Daher wollte ich dann nen ragdoll von oben machen, wo Beine seine textur langziehen sollen wenn er geht, ich weiss wies geht, aber ich wollte es noch mit den armen machen, also das die waffe sagt "hier mit hand nehmen. Das weiss ich auch schon, wies geht, aber meine arme spinnen herum wenn ich es starte und manches funzt net so gut

Aber ich habe mal ne skizze gemalt:

Die Blauen Punkte sind das zentrum der objekte. Also bei der Linken Schulter sollte es zuerst zum zentrum gehen, die selbe direction haben und dann -90° machen und eine geschwindigkeit von 16 haben, somit es in ein step am rand ist. Aber leider geht es nur bei mir mit 2 steps, weil es ja zeit braucht um hinzukommen und dann ja den speed wieder auf 0 zu setzen. dann soll der image_angle von seinen punkt aus zum linken Ellenbogen gehen. Das geht ja auch.

Dann habe ich die Arme einfach zu ihren Punkten gesetzt und sie zum nächsten objekt gucken lassen(gestrichelt).
ALLES WIRD VON OBJ_BODY GESTEUERT UND IN DEN ANDEREN OBJEKTEN IST NICHTS AUSSER DEN SPRITE
Also so sollte es ja auch sein.
obj_body:

GML-Quellcode
- LSh=instance_create(x-16,y,obj_ball)
- LA1=instance_create(x-15,y-6,obj_arm)
- LEl=instance_create(x-10,y-20,obj_ball)
- LA2=instance_create(x-6,y-23,obj_arm)
- LHa=instance_create(x-4,y-25,obj_ball)
- LHago=instance_create(x-4,y-25,obj_ball) // Spielt gerade garncihtsn und wird nirgens verwendet.
- LEl.dirsh=20 // max distance vom (El)lenbogen zur (sh)ulter
- LEl.dirha=20 // max distance vom (El)lenbogen zur (Ha)nd
- step=0

GML-Quellcode
- image_angle=point_direction(x,y,mouse_x,mouse_y)
- direction=image_angle
- LHa.dirsh=LEl.dirsh+LEl.dirha // max distance von der summe von den beiden über, somit die hand nich einfach ab fällt.
- LSh.x=self.x //standartposition bei jeden step
- LSh.y=self.y //standartposition bei jeden step
- LSh.image_angle=point_direction(LSh.x,LSh.y,LEl.x,LEl.y)// Schulter soll von Shulter zum Ellenbogen gucken
- LSh.direction=self.direction-90 //dreht sich und sich zum rand zu bewegen
- if step==1 then // !!! 1.Problem !!!
- {LSh.speed=16}
- if step==2 then
- {LSh.speed=0}
- LEl.image_angle=point_direction(LEl.x,LEl.y,LHa.x,LHa.y) // !!! 2.Problem !!!
- if step==1 then
- {LEl.direction=point_direction(LEl.x,LEl.y,LHa.x,LHa.y) //Ellbogen dreht zur hand
- LEl.speed=LEl.dirha-point_distance(LEl.x,LEl.y,LHa.x,LHa.y)} //Ellbogen speed zur hand
- if step==2 then
- {LEl.direction=point_direction(LEl.x,LEl.y,LSh.x,LSh.y) // Ellbogen dreht zur schulter
- LEl.speed=LEl.dirsh-point_distance(LEl.x,LEl.y,LSh.x,LSh.y)} //Ellbogen speed zur schulter
- LHa.image_angle=point_direction(LEl.x,LEl.y,LHa.x,LHa.y)
- LHa.direction=point_direction(LHa.x,LHa.y,LSh.x,LSh.y)
- LHa.speed=LHa.dirsh-point_distance(LSh.x,LSh.y,LHa.x,LHa.y) //Hand hält maximalen abstand ein.
- LA1.x=LSh.x //Klappt schon
- LA1.y=LSh.y
- LA1.image_angle=point_direction(LSh.x,LSh.y,LEl.x,LEl.y)
- LA1.direction=image_angle
- LA2.x=LEl.x //Klappt schon
- LA2.y=LEl.y
- LA2.image_angle=point_direction(LEl.x,LEl.y,LHa.x,LHa.y)
- LA2.direction=image_angle
- step+=1 // Timer
- if step==3 then
- step=1
1.Problem: Immer jeder 2. step ist es bei seinen punkt angelangt und nicht gleich am ersten,gerade macht es immer so ein flackern.
2.Problem: Irgendwie läuft der Linke Ellenbogen sich weg und geht ausserhalb des Bildschirms.
Ich hab ne gmk hochgeladen und euch den code zu geben:
+/-= geschwidnigkeit ändern
am anfang ist es auf 1 um es euch zu zeigen
P.S: Sorry für die scheiss Grammatik oder wenn ihr es nicht versteht. Kann net so gut erklären.
EDIT: Oops vergessen gmk hochzuladen
EDIT2: OK IST DAS EINE SACHE FÜR DIE EXPERTENRUNDE? BITTE UM ANTWORT
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ALEX3 ()