Dreh Funktion
Übersicht

spideyBetreff: Dreh Funktion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
HeY Forum
Guten Morgen... Also ich beschäftige mich jetzt mit BB3D seit ein paar Tagen, genauer gesagt seit Freitag.. Ich hab schon viele TuTs zu allen möglichen Themen angeschaut... Nun da dachte ich, ich probier's jetzt selbst.. Schließlich habe ich durch die Hilfe (anderer Posts) schon eine Menge zusammen bekommen Hauptmenü etc... Also mein Problem ist ich möchte mit der Maus das Object in meinen Fall die Camera drehen.. Also im Tutorial (Kollision) war als Object sphere gegeben.. dieses gab ich statt sphere=CreateSphere() folgenden Wert sphere=CreateCamera() nun es hat auch funktionier..Das Problem aber, wie schon ewähnt, möchte ich sphere mit der maus drehen können Folgender Code: Code: [AUSKLAPPEN] While Not KeyDown(1)
x#=0 y#=0 z#=0 MoveMouse sphere 1,-1 ;Hier stand 2 mal die TurnEnity funktion... jeweils in einer anderen Richtung If KeyDown(31)=1 Then MoveEntity sphere,0,0,-0.5 If KeyDown(17)=1 Then MoveEntity sphere,0,0,0.5 If KeyDown(203)=1 Then x#=-0.3 If KeyDown(205)=1 Then x#=0.3 If KeyDown(208)=1 Then z#=-0.3 If KeyDown(200)=1 Then z#=0.3 MoveEntity sphere,x#,-0.5,z# Collisions 1,2,2,0 UpdateWorld RenderWorld col=CountCollisions(cylinder) Flip Wend Ich habs seit Gestern versucht, heute gab ichs auf *fg* naja Danke im Voraus MfG Spidey |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi spidey, erstmal willkommen auf diesem Forum...
Um eine Maussteuerung zu machen kannst du folgendes anwenden...Code: [AUSKLAPPEN] mxs=MouseXSpeed()
Wichtig ist hier, daß MoveMouse immer nach einer Mausabfrage wieder in die 'Mitte' des Bildschirmes bewegt wird. Ansonsten kann man nicht unendlich weiter drehen da die Maus ja irgendwann an den Seiten des Bildschirmes angekommen ist. Statt MoveMouse 200,200 würde ich jeweils die Hälfte der Bildschirmbreite und die Hälfte der Bildschirmhöhe anlegen. Also zB bei Graphics 800,600: MoveMouse 400,300
mys=MouseYSpeed() MoveMouse 200,200 TurnEntity sphere,mys,0,mxs |
||
spidey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erstmal danke...
Also zu der Mausbewegung danke die Funktioniert ..aber wenn ich die Maus nach Oben oder Unten bewege,dann fährt das Object jeweils nach Vorne bzw Rückwärts. Also kurz gesagt wenn ich Raufschau fahr ich Vorwärts wenn ich runterschau Rückwärts Code:Code: [AUSKLAPPEN] While Not KeyDown(1)
RotateEntity sphere,EntityPitch(sphere)+MouseYSpeed(),EntityYaw(sphere)-MouseXSpeed(),0 x#=0 y#=0 z#=0 mxs=MouseXSpeed() mys=MouseYSpeed() MoveMouse 200,200 TurnEntity sphere,mys,0,mxs If KeyDown(31)=1 Then z#=-0.1 If KeyDown(17)=1 Then z#=0.1 MoveEntity sphere,x#,-0.1,z# Collisions 1,2,2,2 UpdateWorld RenderWorld col=CountCollisions(sphere) Flip Wend End Was ich vermute, das liegt an der Funktion MoveEntity sphere,x#,-0.1,z# danke Erstmal.. MfG spidey [/syntax] |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also erstmal was vorweg...
Code: [AUSKLAPPEN] RotateEntity sphere,EntityPitch(sphere)+MouseYSpeed(),EntityYaw(sphere)-MouseXSpeed(),0
RotateEntity dreht ein Objekt auf ein bestimmten Winkel egal wie es zuvor gedreht war. TurnEntity dreht ein Objekt auf ein bestimmten Winkel relativ zu dem wie es vorher war. Das heisst, daß dein Code da oben auch so gelöst werden kann. Code: [AUSKLAPPEN] TurnEntity sphere,MouseYSpeed(),-MouseXSpeed(),0
Dann würde ich vorschlagen nicht alles durcheinander zu programmieren. Auch in einer Schleife nach Möglichkeit 'sortieren'. Ich mache das immer so Maus/Tastatur-Abfrage, Variablenberechnungen, Bildschirmausgabe... Wenn Mouse(XYZ)Speed angewand wird, dann ist es nicht ratsam die gleiche Achse innerhalb einer Schleife mehr als einmal abzufragen. Speichere die Werte dann vorher in Variablen ab. Zu deinen Frage: Um eine Umkehrung der Bewegung zu bewirken, sollte z#=-0.1 zu + und + zu - gémacht werden. Was soll eigentlich bei MoveEntity sphere,x#,-0.1,z# die -0.1 bewirken? |
||
spidey |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey
Also der Wet -0.1 bewirkt im diesen Fall die Schwerkraft wenn ich den Wert auf 0.0 ändere, dann schwebe ich in der Luft.. mh ich blick da imma noch ned durch wie und warum ich mich bewege wenn die Maus nach oben bzw unten..zeigt mfg Spidey |
||
![]() |
lucifer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst statt moveentity für die Schwerkraft TranslateEntity benutzen. TranslateEntity berücksichtigt die Rotation des Entity nicht und deswegen bewegst sich die Kamera dann immer nach unten. | ||
Aktuelles Projekt:
Demonspawn RPG |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group