Tutorial für komplette Kamerasteuerung
Übersicht

Peak7810Betreff: Tutorial für komplette Kamerasteuerung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gesucht wird ein Tutorial, zur Kamerasteuerung mit der Maus, und Tasten.
Eventuell incl. Sprungsequenz, und ohne, dass sich die Kamere bei Mausbewegungen nach links oder rechts dreht.. (sondern nur nach links oder rechts schauen) Thx |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
gesucht werden 35 Tuts die zusammen ein komplettes Game ergeben ohne dass ich mich anstrengen muss .... ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Laufen:
Code: [AUSKLAPPEN] Geschwindigkeit# = 0.1
Code: [AUSKLAPPEN] If KeyDown(17) = 1 Then
MoveEntity Kamera, 0, 0, Geschwindigkeit#: Abstand = 2 EndIf If KeyDown(31) = 1 Then MoveEntity Kamera, 0, 0, -Geschwindigkeit#: Abstand = 2 EndIf If KeyDown(30) = 1 Then MoveEntity Kamera, -Geschwindigkeit#, 0, 0: Abstand = 2 EndIf If KeyDown(32) = 1 Then MoveEntity Kamera, Geschwindigkeit#, 0, 0: Abstand = 2 EndIf Drehen der Kamera: Code: [AUSKLAPPEN] Winkel = Winkel + MouseYSpeed() If Winkel > 45 Then Winkel = 45 If Winkel < -45 Then Winkel = -45 TurnEntity Kamera, -EntityPitch(Kamera), 0, 0 TurnEntity Kamera, Winkel, -MouseXSpeed(), 0 ich hoffe das hilft dir weiter. |
||
www.drachengarde.tk
Guckst da Hier |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Natürlich strenge ich mich an, und habe letzte Nacht bis früh um 4 darüber gebrütet.
Und habe als letzte Möglichkeit hiernach gefragt. Denn ich hatte die kamerasteuerung bereits, nur dass sich die Kamera halt immer in der Horizontalen drehte. @afje: Danke hat mir schonmal geholfen Irgendwas funktioniert hier aber immer noch nicht. Die Kamera lässt sich nicht mehr auf der Y Achse (glaube ich) bewegen. Und wenn ich die Maus nach Links oder Rechts bewege, dann schaue ich nicht nach Links oder Rechts, sondern die Kamera dreht sich im Kreis. (als wenn ich von der Seite auf ein Rad schauen würde) Hier mal der Quelltext. Hoffentlich findet jemand den Fehler, denn ich weiss auch nicht mehr, was ich falsch mache. Global x = 1024 Global y = 768 Graphics3D x, y, 32, 1 SetBuffer BackBuffer() Level = LoadMesh("Map.b3d") Kamera = CreateCamera() licht = CreateLight(1) PositionEntity licht, 255, 0, 0 PositionEntity Level, 0, 0, 0 PositionEntity Kamera,0, -1, 0 CameraRange Kamera, 0.1, 10000 MoveMouse x / 2, y / 2 HidePointer() While Not KeyHit(1) Geschwindigkeit# = 0.1 If KeyDown(17) = 1 Then MoveEntity Kamera, 0, 0, Geschwindigkeit#: Abstand = 2 EndIf If KeyDown(31) = 1 Then MoveEntity Kamera, 0, 0, -Geschwindigkeit#: Abstand = 2 EndIf If KeyDown(30) = 1 Then MoveEntity Kamera, -Geschwindigkeit#, 0, 0: Abstand = 2 EndIf If KeyDown(32) = 1 Then MoveEntity Kamera, Geschwindigkeit#, 0, 0: Abstand = 2 EndIf Winkel = Winkel + MouseYSpeed() If Winkel > 45 Then Winkel = 45 If Winkel < -45 Then Winkel = -45 TurnEntity Kamera, -EntityPitch(Kamera), 0, 0 TurnEntity Kamera, Winkel, -MouseXSpeed(), 0 PositionEntity Kamera, EntityX(Kamera), EntityY(Kamera),1 RenderWorld UpdateWorld Text 10, 10, Distanz Flip Wend End ClearWorld |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde sagen, dass das Clearworld nach dem End eigentlich
sinnlos ist... |
||
aktuelles Projekt: The last day of human being |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sicher, aber leider löst das nicht mein Problem.
Testet mal den Quellcode mit einer Map von Euch. Ich weiss echt nicht mehr weiter... |
||
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, ka, der code ist sehr seltsam geschrieben, so kompliziert ![]() Code: [AUSKLAPPEN] rotateentity camera, entitypitch(camera)+mouseyspeed(), entityyaw(camera)-mousexspeed(),0 das sollte ohne probleme laufen. ... Code: [AUSKLAPPEN] PositionEntity Kamera, EntityX(Kamera), EntityY(Kamera),1 was soll das? hat das einen sinn? |
||
Affje |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du hast 2 achsen vertauscht, die y und die z achse, deshalb....
Code: [AUSKLAPPEN] PositionEntity Kamera, EntityX(Kamera), 2, EntityZ(Kamera)
dies ergänzen. ich hoffe, dass deine map nur eine höhe hat, wenn nicht muss ich nochmal gucken. hoffe ich konnte helfen. |
||
www.drachengarde.tk
Guckst da Hier |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tatsache, ich habe beides vertauscht, aber das Problem lag noch woanders.
Ich selbst habe die beiden Werte vertauscht, ich musste dies tun, wusste aber nicht, dass die Map sozusagen Vertikal statt Horizontal lag. Muss wohl beim Unwrapping passiert sein. Habs korrigiert, habe jetzt aber folgendes Problem. Wenn ich die Kamera auf der X-Achse drehe, um mich umzuschauen, dann geht das nur bis zu einem gewissen Winkel, dann bleibt die Kamera stehen. (das passiert in beiden Richtungen) Bei einer Drehung um 990 Grad also 2 3/4 Umdrehungen passiert dies. Gibts da eine Erklärung dafür, und vorallem eine Lösung. Winkel = Winkel + MouseYSpeed() If Winkel > 45 Then Winkel = 45 If Winkel < -45 Then Winkel = -45 TurnEntity Kamera, -EntityPitch(Kamera), 0, 0 TurnEntity Kamera, Winkel, -MouseXSpeed(), 0 PositionEntity Kamera, EntityX(Kamera), 0, EntityZ(Kamera) @affje: bist du so nett, und guckst mal, ich würde gern eine Treppe, mit einer zweiten Ebene einbauen, wie muss ich das dann anstellen. Danke |
||
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
MoveMouse x / 2, y / 2
das hier musste auch noch in die schleife packen, allerdings _nach_ dem abfragen von MouseSpeed()! |
||
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, jetzt funktionierts.
Aber wie mach ich das jetzt, wenn die Map nicht nur auf einer Y-Konstanten liegt, wenn ich jetzt z.B. eine Treppe mit einer zweiten Etage einbauen will. Und momentan bleibt die Kamera ja auf dem Boden, aber wenn ich mich auf einer Treppe auf eine nächste Ebene bewege, dann darf die Kamera ja nicht mehr auf dem Boden kleben bleiben. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group