NicTheQuick hat geschrieben:Folgender Code:
Code: Alles auswählen
XWarpPointer_(#Null, #Null, #Null, 0, 0, 0, 0, 100, 100)
Debug "test2"
MessageRequester("", "test")
[COMPILER] Zeile 1: XWarpPointer_() is not a function, array, macro or linked list.
Ich fühle mich grad wieder wie ein Anfänger.
Was hab ich nun wieder falsch gemacht? Hat jemand liebenswürdigerweise ein
funktionierendes Code-Beispiel, wie ich mit dem Befehl umgehen muss?
Code: Alles auswählen
ImportC ""
XOpenDisplay(display_name.p-ascii)
XCloseDisplay(display)
XDefaultRootWindow(display)
XWarpPointer(display, src_w, dest_w, src_x, src_y, src_width, src_height, dest_x, dest_y)
EndImport
disp.s = GetEnvironmentVariable("DISPLAY")
Debug disp
d = XOpenDisplay(disp)
root = XDefaultRootWindow(d)
XWarpPointer(d, root, root, 0, 0, 0, 0, 100, 100)
XCloseDisplay(d)
End
OpenWindow(0,0,0,0,0,"")
NicTheQuick hat geschrieben:Naja, wenn ich schonmal hier bin, gleich die nächste Frage zu meinem eigentlich Problem:
Ich will ein Fenster erstellen und den Mauscursor immer in der Mitte des Fensters belassen.
Wenn man die Maus dann bewegt, soll sich die Kamera drehen. Wie in einer Art
Ego-Shooter. So hatte ich es bisher auch unter Windows immer gemacht.
Jetzt hab ich aber gesehen, dass 'SetCursorPos_()' keine Events wirft, aber
'XWarpPointer_()' hingegen schon. Das heißt bei jedem Zurücksetzen des bewegten
Cursors auf die Mitte des Fenster würden Gegenevents zur Benutzerbewegung
erzeugt werden, was die ganze Aktion dann ziemlich sinnlos machen würde.
Wie würdet ihr das sonst machen?
Ich kopier PureBasic jetzt endlich mal nach /opt/. ^^
Da das ganze ja ein Raytracer ist, würde ich mit SDL bzw. den PB-eigenen
Inputfunktionen arbeiten.
Wenn du in ein ImageGadget() zeichnest, kannst du aber auch per
GTK-Callback die Mausbewegungen erhalten und steuern. Hier ein guter
Link, der das Steuern der Maus per GDK (anstatt XLib) zeigt:
http://www.gtkforums.com/about182.html
Ein einfaches Callback auf "motion-notify-event" wird dir auch die
Mausbewegungen liefern
