Mouse?Speed zur Kameradrehung
Übersicht

![]() |
SeomanBetreff: Mouse?Speed zur Kameradrehung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo allerseits.
Nach einer seeehhhr langen Programmierpause und einer noch sehr viel laengeren Zeit von Foreninaktivitaet sitze ich zur Zeit in Australien und versuche mich an einfachster Grundsatzprogrammierung. Ein recht peinliches Comeback, muss ich sagen, da ich nichtmal mehr Kameradrehung hinbekomme - zumindest nicht ruckelfrei. Die Yaw-Drehung scheint zu funktionieren, die Pitch-Drehung laesst meine Kamera ruckeln. Mausbewegung versuche ich mit mousexspeed und mouseyspeed abzufragen. Langer Rede kurzer Sinn: Hier ist der Code, herruntergearbeitet auf die zwei Functions: Code: [AUSKLAPPEN] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function mouse() my_cam_tpitch = MouseYSpeed() my_cam_tyaw = MouseXSpeed() MoveMouse(GraphicsWidth()/2, GraphicsHeight()/2) MouseXSpeed() MouseYSpeed() End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function movement() If KEYDOWN(31)=1 THEN MoveEntity my_cam,0,0, - my_speed If KEYDOWN(17)=1 THEN MoveEntity my_cam,0,0, my_speed If KEYDOWN(32)=1 THEN MoveEntity my_cam, my_speed,0,0 If KEYDOWN(30)=1 THEN MoveEntity my_cam, - my_speed,0,0 my_cam_pitch# = EntityPitch(my_cam) + my_cam_tpitch my_cam_yaw# = EntityYaw(my_cam) -my_cam_tyaw RotateEntity my_cam, my_cam_pitch, my_cam_yaw,0 PositionEntity my_cam, EntityX(my_cam), my_height, EntityZ(my_cam) End Function Ich weiss, dass ich irgendwo bei mir auf meinem Rechner zu Hause eine ganze Anzahl an einwandfreien Drehungen nach dem "oldmausx - MouseX()" Prinzip rumliegen habe, aber vor etwa 7 Stunden sah mein hiesiger Code auch noch so aus und er hat trotzdem geruckelt. Und eigentlich sollte Mouse?Speed schliesslich auch funktionieren. Wenn mein Fehler offensichtlich ist: Ich bitte um Nachsicht, es ist lange her. Ins BeginnerForum zu schreiben verbietet mir mein Stolz und der letzte Funken Hoffnung, dass es irgendwo doch keine allzu offensichtlichen Codeschwaechen sind, die mir Probleme bereiten. Sollten ein Lob bei hilfreicher Antwort oder weitere Information meinerseits nicht allzu regelmaessig eintreffen, so bitte ich um Nachsicht, ich habe hier nur sehr sporadisch Zugang zum Internet. Gruesse von der sonnigen anderen Seite der Welt, Seoman |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe auch immer die probleme, dass es ruckelt oder stockt, deshalb helfe ich mir so:
in der Hauptschleife nehme ich noch 2 weitere Variablen zur aktualisierung: o(ld)mx = mx o(ld)my = my bevor ich die Maus selber abfrage, wenn nun eine Differenz zwischen dem alten und dem neuen Wert besteht, drehe ich die Kamera um einen bestimmten Wert. Funktioniert bei mir eigentlich ganz gut. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
SeomanBetreff: Re: Mouse?Speed zur Kameradrehung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seoman hat Folgendes geschrieben: Ich weiss, dass ich irgendwo bei mir auf meinem Rechner zu Hause eine ganze Anzahl an einwandfreien Drehungen nach dem "oldmausx - MouseX()" Prinzip rumliegen habe, aber vor etwa 7 Stunden sah mein hiesiger Code auch noch so aus und er hat trotzdem geruckelt. Und eigentlich sollte Mouse?Speed schliesslich auch funktionieren. Ich stell mich mal stur ![]() ![]() Aber vielen Dank fuer deine Antwort, dann muss ich mir ja doch nicht sooo dumm vorkommen und bau es wieder mit oldmausx und y ![]() EDIT: Schoen waer's gewesen, jetzt wird es peinlich. Nichtmal mit oldx klappts... ![]() Code: [AUSKLAPPEN] Graphics3D 1024, 768, 32,1 SetBuffer BackBuffer() ;## Global my_height# = 1.5 Global my_speed# = 0.08 Global my_cam = CreateCamera() PositionEntity my_cam,64,my_height,64 Global my_cam_tpitch#, my_cam_tyaw# Camerarange(my_cam, .1, 64) CameraFogMode(my_cam, 1) CameraFogRange(my_cam, 1, 64) CameraFogColor(my_cam, 40,0,10) Global my_camx#, my_camz# ;## Global level_light = CreateLight() RotateEntity level_light,90,0,0 Global level_terrain =CreateTerrain(128) ;## MoveMouse(GraphicsWidth()/2, GraphicsHeight()/2) Global mouse_oldx = MouseX() Global mouse_oldy = MouseY() ;####################### WHILE NOT KEYHIT(1) movement() mouse() UpdateWorld() RenderWorld() Flip(0) Wend End ;######################## ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function mouse() my_cam_tpitch# = MouseY() - mouse_oldy my_cam_tyaw# = MouseX() - mouse_oldx mouse_oldx = MouseX() mouse_oldy = MouseY() End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function movement() If KEYDOWN(31)=1 THEN MoveEntity my_cam,0,0, - my_speed If KEYDOWN(17)=1 THEN MoveEntity my_cam,0,0, my_speed If KEYDOWN(32)=1 THEN MoveEntity my_cam, my_speed,0,0 If KEYDOWN(30)=1 THEN MoveEntity my_cam, - my_speed,0,0 PositionEntity my_cam, EntityX(my_cam), my_height, EntityZ(my_cam) RotateEntity my_cam, EntityPitch(my_cam)+my_cam_tpitch, EntityYaw(my_cam)-my_cam_tyaw, 0 End Function Laeuft das bei euch "ruckelfrei"? Bewegung funktioniert wunderbar, mit fps anzeige laeufts auf ein paar hundert (selbst mit schoenen Tuermchen ueberall in der Landschaft ![]() ![]() |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versteh ich das richtig, das ihr die Cam mit der Maus drehen wollt?
Ich hab mal was gefunden: Code: [AUSKLAPPEN] RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 Wenn ich Scheisse laber (mal wieder^^) dann sorry. =P |
||
![]() |
Iguan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Seoman! Bin zur zeit auch in australien (Byron Bay) ![]() wo bist du? ich habe leider keinen laptop hier um zu programmieren ;'-( ich hatte auch schon das selbe problem! ich denke the_nici koennte recht haben! cheers |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sydney ![]() Und ich habe einfach ganz dreist von zu Hause aus mein Blitzbasic auf einen Server hochgeladen und hier wieder runtergezogen (Rechner der Gastfamilie^^) Der Code von Nici hilft mir auch nicht ![]() Hab dann aber gluecklicherweise diesen Code gefunden: Code: [AUSKLAPPEN] Local x_speed#,y_speed# x_speed=(MouseXSpeed()-x_speed)/4+x_speed y_speed=(MouseYSpeed()-y_speed)/4+y_speed MoveMouse GraphicsWidth()/2, GraphicsHeight()/2 TurnEntity my_cam,0,-x_speed,0 TurnEntity my_cam,y_speed,0,0 Der funktioniert nicht nur ruckelfrei sondern erlaubt zusaetzlich schon erste Veraenderungen der Maussensivitaet ![]() Insofern ist mein Problem geloest ![]() Danke euch allen!! (Wenn mir nun irgendwer noch sagen koennte, warum ich mit der einfachen Variante Probleme hatte, muesste ich nicht einmal mehr rastlos auf der Suche nach der Antwort durch das Haus wandeln ![]() mfg Seoman |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 800,600 SetBuffer BackBuffer() cam = CreateCamera() cube = CreateCube() MoveEntity cube,0,0,10 While Not KeyHit(1) RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 MoveMouse(200,200) RenderWorld Flip Wend Funktioniert bei mir wunderbar. 0o Der Code ist übrigens nicht von mir. |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, seltsam^^
Wie gesagt, ich sitze hier nicht an meinem Rechner, an meinem denke ich sollte es auch funktionieren (zumindest hat es das mal). Waere natuerlich immernoch eine interessante Frage, ob Soft- und Hardwareunterschiede darauf dann Einwirkung haben... Aber immernoch sehr verwirrend bleibt meine Erfahrung mit der Cubed Demo.... Egal, ich werde es einfach alles ignorieren und mit meiner Onboard Graka hier weiter Spass haben^^ |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nochmals versucht, jetzt ruckelts auch...
Vll. nimmt BB die MouseYSpeeddingenz nicht so gut oder wie? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group