Kamera nach Maus
Übersicht

![]() |
MegamagBetreff: Kamera nach Maus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich möchte für mein Spiel eine Steuerung einbauen. Man kann mit der Maus frei die umgebung betrachten, und wenn man den Pfeil nach oben drück, läuft man in die Richtung, in die die Maus gerade zeigt, nur ohne oben und unten. Etwa so wie hier, nur dass da noch ein Player vor die Kamera gehört: http://www.youtube.com/watch?v...re=related Wie ist so etwas möglich? |
||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Sorry wegen des Doppelposts, aber ich habe im Example-Ordner "Scare" gefunden. Das ist eigentlich schon gut, aber ich habe die Codes nicht verstanden, kann mir vielleicht jemand sagen, wie das da gemacht wird? |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dazu brauchst du die MouseXSpeed![]() ![]() ![]() Zitat: TurnEntity
![]() TurnEntity cam,0,MouseXSpeed(),0,1 MoveMouse ![]() ![]() ![]() mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke! | ||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber ich glaub, die Forensuche hast du nicht genutz... Da kam sowas schon hundert mal vor...
mfgCrack93 ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch schon, und ich habe auch was gefunden, aber nicht verstanden. | ||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, Mann...
Ich versteh' einfach nicht, was jetzt kommt... Also, ich habe folgenden Code: Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() Licht=CreateLight() spieler=CreateCube() Kamera=CreateCamera() PositionEntity Kamera,0,3,0 PositionEntity spieler,0,0,30 Text=CreateTexture( 32,32,8 ) ScaleTexture Text,10,10 SetBuffer TextureBuffer(Text) Color 0,0,64:Rect 0,0,32,32 Color 0,0,255:Rect 0,0,32,32,False SetBuffer BackBuffer() plane=CreatePlane() PositionEntity plane,0,0,0 EntityTexture plane,Text While Not KeyHit(1) Mx#=MouseXSpeed() My#=MouseYSpeed() TurnEntity spieler,0,-Mx/2,0 TurnEntity Kamera,My/2,0,0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 UpdateWorld RenderWorld Flip Wend Aber es muss ja jetzt folgendes eintreten: Die Kamera muss sich um den Player drehen, der Player steht praktisch immer im Mittelpunkt. Die Kamera muss sich nach der Maus drehen. Die Kamera muss sich aber so drehen, dass man den Boden nicht von unten sehen kann, sie darf sich also nicht in irgendwelche Objekte reindrehen. Das ganze muss dann am Ende irgendwie sein, wie "Rayman M - Lum Fight", falls das irgendeiner von euch mal gespielt hat. Ich komm einfach nicht weiter... EDIT: Ich habe gerade im Internet ein Spiel gefunden. So in etwa soll meines auch werden. Damit ihr es euch besser vorstellen könnt: http://www.miniclip.com/games/trech-2/de/ |
||
- Zuletzt bearbeitet von Megamag am Sa, Mai 03, 2008 15:17, insgesamt einmal bearbeitet
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz4D hat Folgendes geschrieben: Sorry wegen des Doppelposts
Das impliziert für mich irgendwie, du wüsstest ganz genau, dass hier Doppelposts nicht erlaubt sind und trotzdem hast du hier schon zwei fabriziert. Also: Die sind verboten, auch wenn man sich dafür entschuldigt. Das spielt keine große Geige. Du bist jetzt hiermit gewarnt, dass bei Wiederholung angefangen wird, deine entsprechenden Threads zu schließen. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn der Player immer an einer festen Position sein soll dann kannst du es entwededer so machen :
Code: [AUSKLAPPEN] spieler = CreateCube(cam)
(Näheres : Siehe CreateCube ![]() oder Code: [AUSKLAPPEN] spieler = CreateCube()
EntityParent spieler,cam (Näheres : siehe EntityParent ![]() Wenn du aber die willst, dass die Kamera sich so dem spieler hinterzieht, muss du dass selber machen (mit Pivot oda so...) mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
also wenn ich das richtig sehe, dann muss das so in der art sein:
Code: [AUSKLAPPEN] player=CreateEntity() cam=CreateCamera(piv) MoveEntity cam,0,3,-5 und jetzt hast du nen player und dahinter deine cam. Allerdings dreht sich die Kamera jetzt auch mit, wenn der player sich dreht. @Crack: Warum den Spieler als Child von der Kamera? Die Kamera soll doch vom Spieler abhängig gemacht werden, oder versteh ich da was falsch? |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, richtig.
Der Player soll stehen bleiben und sich nach der Maus drehen, die Kamera blaibt dabei immer hinter ihm. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
jop, dann tut's das so wie in meinem code ^^
gibt natürlich noch viel viel schönere varianten, aber das ist ja erstmal egal ^^ |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was meinst du mit "piv"? | ||
Code der Verwirrung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
pivot.... auf deutsch drehpunkt oder so... pivots kann man zusätzlich einfügen um z.b. kammerrotationen hinzubekommen. ein pivot ist "unsichtbar". | ||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wo mache ich diesen Pivot hin? | ||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] pivot=Createpivot() camera=Createcamera() Positionentity camera, 0,3,3 Entityparent camera, pivot ;Dann in der Hauptschleife Turnentity pivot, MouseXSpeed(), -MouseYSpeed() Sollte so eigentlich gehen. |
||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tut mir leid, aber das funktioniert gar nicht.
Wenn man die Maus bewegt, dann ligt die plötzlich schräg und wackelt in einem komischen Winkel hin und her... |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Och Mensch, tut es einfach?
Dann liegts drann das EntityRoll sich verändert! Lösungsvorschlag: RotateEntity pivot, EntityPitch(pivot)+MouseXSpeed(), EntityYaw(pivot)-MouseYSpeed(), 0 Besser? |
||
![]() |
Megamag |
![]() Antworten mit Zitat ![]() |
---|---|---|
Äh...
Nö. Hier ist der Code, probier ihn mal aus... Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() Licht=CreateLight() spieler=CreateCube() pivot=Createpivot() camera=CreateCamera() PositionEntity camera, 0,3,3 EntityParent camera, pivot PositionEntity spieler,0,0,30 Text=CreateTexture( 32,32,8 ) ScaleTexture Text,10,10 SetBuffer TextureBuffer(Text) Color 0,0,64:Rect 0,0,32,32 Color 0,0,255:Rect 0,0,32,32,False SetBuffer BackBuffer() plane=CreatePlane() PositionEntity plane,0,0,0 EntityTexture plane,Text While Not KeyHit(1) ;Dann in der Hauptschleife RotateEntity pivot, EntityPitch(pivot)+MouseXSpeed(), EntityYaw(pivot)-MouseYSpeed(), 0 UpdateWorld RenderWorld Flip Wend |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst noch viel lernen, junger padawan. ^.^
1. benutze keine Variablenamen die gleich heissen wie Funktionen 8Einfach aus sicherheit 2. rücke deine Codes ein 3. versuche mal selber mit Text ![]() Scheinbar kommt die Cam nicht über -90°, weiss der Teufel warum, liegt wohl an der Blitzinternen Rotationstechnik, hab ich mal gehört. Mein Code: [AUSKLAPPEN] Graphics3D 800,600,32,2 SetBuffer BackBuffer() Licht=CreateLight() spieler=CreateCube() PositionEntity spieler, 0,0,30 pivot=CreatePivot(spieler) camera=CreateCamera() PositionEntity camera, 0,3,3 PointEntity camera, pivot EntityParent camera, pivot Tex=CreateTexture( 32,32,8 ) ScaleTexture Tex,10,10 SetBuffer TextureBuffer(Tex) Color 0,0,64:Rect 0,0,32,32 Color 0,0,255:Rect 0,0,32,32,False SetBuffer BackBuffer() plane=CreatePlane() PositionEntity plane,0,0,0 EntityTexture plane,Tex While Not KeyHit(1) ;Dann in der Hauptschleife TurnEntity pivot, -MouseYSpeed(), MouseXSpeed(), 0 RotateEntity pivot, EntityPitch(pivot), EntityYaw(pivot), 0 PointEntity camera, pivot MoveMouse 400,300 UpdateWorld RenderWorld Text 0,0,EntityPitch(pivot) Text 0,12,EntityYaw(pivot) Text 0,24,EntityRoll(pivot) Flip Wend Wie du siehst habe ich Turn und Rotate voneinander getrennt, zuerst wird geturnt und dann wieder die Roll-Achse auf 0 gesetzt. Desweiteren ist der Pivot nun child des spielers. Und bitte kopiere in Zukunft die codes nicht einfach ab sondern verstehe sie. MfG |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group