[GELÖST]move mouse problem unter linux
Übersicht

Boris1993Betreff: [GELÖST]move mouse problem unter linux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Ich nutze seit neustem Linux statt Windows und hab nun einige Probleme am Hals. Zum Beispiel funktioniert mein Kamera Type nicht mehr so wie er soll. Das liegt wahrscheinlich an MouseXYSpeed oder MoveMouse mein Code für die Kameradrehung lautet so: Code: [AUSKLAPPEN] mxs = MouseXSpeed()
mys = MouseYSpeed() mzs = MouseZSpeed() MoveMouse w/2, h/2 MouseXSpeed() MouseYSpeed() unter Windows hat das immer geklappt. Warum jetzt nichtmehr? Ausserdem wenn sich das Fenster öffnet befindet es sich irgendwo am Bildschirmrand und ich kann es ja nicht wirklich rumschieben da das Programm mit movemouse arbeitet. Der Vollbildmodus klappt auch nicht mit GLGraphics w, h, 32, 60 wie unter Windows. Das wärs erstmal mit Problemen glaub ich ![]() Was ich noch komisch finde ist die IDE unter Linux. Sie sieht echt komisch aus und ist auch nicht so gut funktionsfähig kennt da einer vielleicht alternativen? Schonmal Danke im vorraus |
||
- Zuletzt bearbeitet von Boris1993 am So, Dez 09, 2012 17:11, insgesamt 4-mal bearbeitet
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die IDE ist in der Tat nicht so nett, aber es gibt Alternativen.
Fullscreen funktioniert bei mir. Hast dus mal mit Graphics w,h,1 versucht? Und zu deinem Kamera-Dings: was klappt denn nicht mehr. Bzw was hat vorher geklappt, was macht dein Kameratyp eigentlich? Wir kennen deinen weder deinen Code noch dein Programm. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo fullscreen funktioniert doch mit w, h, 1 ![]() Danke für den Hinweis mit der Ide Das mit der Kamera ist so man rotiert sie mit der Maus wie bei den meisten First Person Spielen. Damit die Maus nicht aus dem Fenster rauskommt wird die Maus immer wieder in die Mitte bewegt sonst könnte man ja die Kamera immer nur ein Stück drehen und dann wäre die Maus wieder außerhalb des Fensters. Eigentlich sollte der MouseXSpeed und MouseYSpeed aufruf nach dem MoveMouse die werte abfangen damit sich nur die eigene bewegung der maus auf die Kamera überträgt, doch unter Linux funktioniert das irgendwie nicht und die Kamera bleibt Quasi stecken und lässt sihc nur minimal bewegen und kehrt dann wieder zu ihrem ausgangspunkt zurück. Ich habs auch schon mit FlushMouse versucht geht leider auch nicht. Gibt es vielleicht eine alternative zu MoveMouse? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Code den Du gepostet hast macht ja was anderes. Der speichert erst mal die Bewegung zwischen, setzt dann die Maus in die Mitte und ermittelt dann erneut die Bewegung, ohne sie jedoch zu speichern. Wenn das dein gesamter Code ist dafür kann es nicht funktionieren. Wenn nicht: Poste den gesamten Cameracode.
EDIT: Die Doku ist da in der Tat unvollständig. Der Parameter gibt die Farbtiefe an, wird jedoch 1 genommen, übernimmt Max die Farbtiefe des Systems für den Vollbildmodus. |
||
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 |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jep, Bladerunner hat recht.
Ich rate einfach mal ins blinde, und sage, gehe 20 zeilen von "Type TKamera" nach unten und lösche sie, dann funzt es! Mal ehrlich, wir brauchen schon ein wenig mehr ![]() Das einzige was man in deinem Code sehen kann, ist das du die MouseSpeed sache (seit dem letzen aufruf -> mausbewegung) speicherst. Danach vollführst du eine MoveMouse sache, was wiederrum den aufruf von MouseXSpeed() und Y erklärt -> Würdest du es nicht tun, bewegt sich einfach garnichts. Also, wenn dein code vorher so funktionierte, sollte er diesmal immernoch funktionieren, da du das aufhebeln des Speedwertes ja schon umgehst. Und das ist der einzige fehler, den man vermuten kann, ohne mehr zu wissen ![]() |
||
Boris1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe den ganzen Code nicht gepostet, weil ich dachte, dass er irrelevant sei. Das wo Move Mouse nicht zwischengespeichert wird dient dem abfangen der Mausbewegung die durch MoveMouse verursacht wird. Ich hab das schon einmal zum testen rausgenommen, da konnte man die Kamera richtig rotieren nur war dann halt die Mausposition nicht in der Mitte gefreezed. Das muss denk ich mal an Linux liegen da es ja voher geklappt hat
Falls ihr den Code trozdem braucht: Code: [AUSKLAPPEN] Type Camera
Const x:Byte = 0 Const y:Byte = 1 Const z:Byte = 2 Field pos:Float[3] Field tar:Float[3] Field rot:Float[3] Field speed:Float Field fov:Float Field cull:Byte Field wireframe:Byte Field mindist:Float Field maxdist:Float Function CreateCamera:Camera(sx:Float = 0, sy:Float = 0, sz:Float = 0, mindist:Float = 0.1, maxdist:Float = 10000.0) Local cam:Camera = New Camera cam.pos[x] = sx cam.pos[y] = sy cam.pos[z] = sz cam.speed = 0.02 cam.fov = 45.0 cam.cull = True cam.mindist = mindist cam.maxdist = maxdist Return cam End Function Method Control(delta:Int) Local mxs:Float Local mys:Float Local mzs:Float mxs = MouseXSpeed() mys = MouseYSpeed() mzs = MouseZSpeed() MoveMouse w/2, h/2 MouseXSpeed() MouseYSpeed() speed:+mzs/100 If speed < 0.01 Then speed = 0.01 rot[x]:-mys/20 rot[y]:+mxs/20 If rot[x] > 80 Then rot[x] = 80 If rot[x] <-80 Then rot[x] =-80 If rot[y] > 360 Then rot[y] =-360 If rot[y] <-360 Then rot[y] = 360 If KeyDown(KEY_W) Then pos[x]:+(tar[x]-pos[x])*speed*delta pos[y]:+(tar[y]-pos[y])*speed*delta pos[z]:+(tar[z]-pos[z])*speed*delta End If If KeyDown(KEY_S) Then pos[x]:-(tar[x]-pos[x])*speed*delta pos[y]:-(tar[y]-pos[y])*speed*delta pos[z]:-(tar[z]-pos[z])*speed*delta End If If KeyDown(KEY_D) Then pos[x]:+Cos(rot[y])*speed*delta pos[z]:+Sin(rot[y])*speed*delta End If If KeyDown(KEY_A) Then pos[x]:-Cos(rot[y])*speed*delta pos[z]:-Sin(rot[y])*speed*delta End If If KeyDown(KEY_R) Then pos[y]:+1*speed*delta If KeyDown(KEY_F) Then pos[y]:-1*speed*delta If KeyDown(KEY_Q) Then fov:+0.02*delta If KeyDown(KEY_E) Then fov:-0.02*delta If KeyHit(KEY_X) Then wireframe = Not wireframe If KeyHit(KEY_C) Then cull = Not cull End Method Method Update() tar[x] = pos[x]+1*Sin(rot[y])*Cos(rot[x]) tar[y] = pos[y]+1*Sin(rot[x]) tar[z] = pos[z]-2*Cos(rot[y])*Cos(rot[x]) If cull = True Then glEnable GL_CULL_FACE Else glDisable GL_CULL_FACE End If If wireframe = True Then glPolygonMode GL_FRONT_AND_BACK, GL_LINE Else glPolygonMode GL_FRONT_AND_BACK, GL_FILL End If glMatrixMode GL_PROJECTION glLoadIdentity() gluPerspective fov, w/h, mindist, maxdist glMatrixMode GL_MODELVIEW glLoadIdentity() gluLookAt pos[x], pos[y], pos[z], tar[x], tar[y], tar[z], 0, 1, 0 End Method End Type Ich habe mir jetzt die Community IDE runtergeladen und die gefällt mir schon ganz gut nur hätte ich gerne die Hintergrund Farbe und die Schrift der Normalen IDE kann mir jemand die rgb werte und den namen der font nennen? Achja und hat einer auch das Problem unter Linux, das der Cursor nicht Blinkt in der IDE? also dieser cursor der anzeigt wo man grad am schreiben ist der wird als son komischer balken angezeigt der wie ne römische 1 aussieht^^ Edit: Hab das Problem gelöst^^ Ich hab einfach mal statt MouseXSpeed MouseX verwendet der Code sieht jetzt so aus und benötigt auch nichtmehr das abfangen: Code: [AUSKLAPPEN] mxs = MouseX()-w/2
mys = MouseY()-h/2 mzs = MouseZSpeed() MoveMouse w/2, h/2 Ich frage mich trotzdem warum es unter windows funktioniert hat und unter linux nicht Vielen Dank für die Hilfsbereitschaft ![]() |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Farbwerte und sonstige Konfiguration stehen in der Datei ide.ini im Ordner *BlitzMaxOrdner*/cfg/
Oder du klickst dich durch das Dialog-Fenster, dass du kriegst, wenn du File>IDE Options anklickst. Dass der Cursor nicht blinkt liegt an der MaxGUI, bzw an FLTK, das unter Linux dafür benutzt wird. Das ist halt so. Schön, dass dein Problem gelöst ist, woran es lag kann ich dir leider nicht sagen, ich hatte mit MouseSpeed noch nie Probleme. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group