TurnEntity und RotateEntity zusammen verwenden
Übersicht

![]() |
rctunerBetreff: TurnEntity und RotateEntity zusammen verwenden |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Ich hab ein Problem mit TurnEntity. Und zwar drehe ich mein Rad wenn das Auto fährt ![]() ![]() Irgendjemand ne Idee? |
||
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach beides mit Turnentity | ||
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder du machst es so:
Code: [AUSKLAPPEN] rotateentity entityx(Entity),entityy(Entity),entityz(Entity)
Jetzt einfach das dazumachen was du willst. Code: [AUSKLAPPEN] rotateentity entityx(Entity),entityy(Entity)+1,entityz(Entity)
|
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
soweit ich weiß geben entityX,entityY,.... Mir nur die Positionen.
Du meinst wohl eher : ENTITYYAW,..... Danke ich werds mal probieren |
||
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tschuldigung hab ich verwechselt. Was du sagtest stimmt natürlich. ![]() ![]() Was ist wenn entityyaw(Entity)=170 ist und 15° dazuaddiert werden!!! ![]() Dann gibt's glaub ich einen Fehler. |
||
![]() |
ChristophBetreff: --->Turnentity |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann wohl doch lieber Turnentity:
Code: [AUSKLAPPEN] turnentity Rad,0,Radrichtung,Radgeschwindigkeit ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das kann man transformieren ![]() NewYaw = ( ( (entityyaw(ent) + 180) + winkel ) mod 360 ) - 180 |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hätte ich neulich gebracht. (Ist ja kein Copyright drauf, also kopier ich's) ![]() |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
[Edit] Hab das Problem nun gelöst indem ich zweimal Turn benutzt hab und bei der Lenkung ihn nicht zum Parent drehen lasse, sondern zur 3d welt.
THX für die Hilfe [/EDIT] |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
so, kaum hab ich das Problem gelöst, steht schon das nächste eigendlich erwartete Problem vor der Tür.
Und zwar muss TurnEntity ja auch mal stoppen wenn der Rad-Einschlag erreicht ist. (Halt wie bei einem Richtigem Auto, da kann man das Lenkrad ja auch nicht unendlich lang drehen) Das hab ich dann ca. so Probiert; If KeyDown(203) raddreh = 1 If Rad_drehungY# > 30 Then raddreh = 0 TurnEntity model_wheels,0,raddreh,0,1 Also wenn der Winkel erreicht ist, soll er aufhören zu drehen. Das klappt auch ganz gut solange ich noch mit dem auto stehe. Aber da ich den TurnEntity jetzt auf "absulut zur 3d welt gestellt hab (siehe Beiträge oben) verändert sich der Winkel logischerweise auch wenn das Auto sich dreht und der Radeinschlag hört dann erst wann anders auf.... Was könnte ich tun? |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
keiner ne Idee wie ich das machen könnte???? ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Häng das Rad einfach an nen Pivot und benutze fürs
Rollen TurnEntity und zum lenken RotateEntity . Fürs Rollen einfach die Geschwindigkeit in Grad pro Sekunde umrechnen . (Dazu brauchst du auch den Radumfang) Für Lenkrad einschlagen z.B. begrenzen von - 30 bis 30 Grad . |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich habs jetzt so gemacht:
ifkeydown() ; nach links Lenken RotateEntity model_wheels,EntityPitch(model_wheels),-30,EntityRoll(model_wheels),0 ; Drehen Wenn Gelenkt wird um 30 Grad um Yaw TurnEntity car,0,-5.5*speed,5*speed ; Das Auto drehen endif und: TurnEntity model_wheels,speed*20,0,0 ; die Räder drehen wenn das Auto fährt If raddreh = 0 Then RotateEntity model_wheels,EntityPitch(model_wheels),0,EntityRoll(model_wheels),0 ; Wenn Lenkung nicht bestätigt dann Räder wieder Ausrichten So nur hab ich jetzt das Problem dass sich das Rad kurz nach vorne dreht, dann plötzlich um 180 Grad gedreht wird. Sich rückwärts dreht... Und dann wieder um 180 Grad dreht.... und das tut es die ganze Zeit.. Hat jemand ne lösung oder tipp? |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm,
versuche es erstmal so if nach links Lenken lenken=-30 elseif nach rechts Lenken lenken=30 else lenken=0 endif RotateEntity model_wheels,0,lenken,0 Auto drehen um Roll also Z Achse verstehe ich nicht !? TurnEntity model_wheels,speed*20,0,0 sieht so ok aus wie ich sehe hast du keinen Pivot benutzt weil du model_wheels zweimal benutzt *GRR* Du mußt dir erstmal eine(zwei) Achse schaffen die so steht wie die Stoßdämpfer und da dann das Rad dran hängen . Im 3D Programm könntest du ein NULL Objekt benutzen , so heißt es jedenfalls in C4D . |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
habs noch net ausprobiert, aber mir ist das aufgefallen:
Zitat: RotateEntity model_wheels,0,lenken,0 TurnEntity model_wheels,speed*20,0,0 sieht so ok aus Die Räder werden durch Turnentity gedreht, werden durch RotateEntity model_wheels,0,lenken,0 wieder festgehalten. Also wegen dem 0,lenken,0 Werden dann also immer wieder auf 0,lenken,0 gesetzt.... So kann das doch garnet funktionieren, ?! |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Darum schrieb ich doch :
wie ich sehe hast du keinen Pivot benutzt weil du model_wheels zweimal benutzt *GRR* Lese mal was über Pivot , ich glaube du weißt nicht was und wofür der da ist . |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
achso ich glaube ich habs jetzt verstanden was du meinst: Eine achse. An der Achse hängen die Räder. Die Achse wird gedreht, somit auch die Räder.
Oder? Naja ich habs jetzt immer so versucht dass sich die Räder um sich selbst drehen... Habs aber leider immer nochnicht geschafft ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So , hier mal nen Beispiel .
Ein Pivot ist eigentlich nur ein unsichtbares Objekt , zur Hilfe solltest du es dir z.B. als Würfel anzeigen lassen . Code: [AUSKLAPPEN] Graphics3D 800,600 SetBuffer BackBuffer() c=CreateCamera() PositionEntity c,-5,0,-8 l=CreateLight() auto=CreateCube() ScaleMesh auto,2,1,3 c1=CreateCube(auto) ;Stoßdämpfer EntityColor c1,255,255,0 PositionEntity c1,-2.2,-0.5,1.4 c2=CreateCube(c1) ;Rad EntityColor c2,128,128,128 ScaleMesh c1,0.1,1,0.1 ScaleMesh c2,0.1,0.5,0.5 PositionEntity c2,-0.5,-0.5,0 PointEntity c,auto While Not KeyHit(1) RenderWorld RotateEntity c1,0,Sin(w)*30.0,0 w=w+1:If w>360 Then w=w-360 TurnEntity c2,1,0,0 Flip Wend End |
||
![]() |
rctuner |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey danke vielmals, das Besipiel hat mir sehr geholfen!!! Habs jetzt endlich (nach 10 Tagen Qual) hinbekommen^^ | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group