Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Maus genauer abfragen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 24.08.2009, 14:23    Titel: Maus genauer abfragen Antworten mit Zitat

Hi,
ich hab gerade ein Problem. Ich habe gemerkt, das in meinem 3D-Spiel die Maussteuerung grauenvoll unpräzise ist, da ich das bisher einfach über die normalen FB-Befehle gemacht, aber die sind abhängig von der Auflösung.
Kennt ihr da ne Möglichkeit, wie ich die Maus genauer abfragen kann? Im DirectX-SDK gibt es da ne Möglichkeit, aber ich verwende ja kein DirectX, außerdem sollte es auch unter Linux laufen zwinkern

Bis denn
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 24.08.2009, 15:16    Titel: Antworten mit Zitat

Was machst du denn bis jetzt? GETMOUSE? SCREENEVENT? Geht es um Mausposition oder Mausbewegung?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 25.08.2009, 13:42    Titel: Antworten mit Zitat

Ich mach das bisher mit GETMOUSE. Ich speicher die Mausposition in zwei Variablen, im nächsten Durchgang sehe ich dann nach um wieviel die Maus sich bewegt hat, dementsprechend rotiert dann die Kamera.
Interessant ist für mich die Mausbewegung, denn es soll mal ein First-Person-Shooter werden.

Wenn sich das mal jemand ansehen will: http://darkinsanity.netii.net/xenon/xenon.zip
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 25.08.2009, 18:49    Titel: Antworten mit Zitat

Ich denke mal, Ungenauigkeiten kommen vor allem dadurch zustande, dass ja immer eine (unkalkulierbare) Lücke zwischen den zwei Abfragen auftritt. Du kannst ja mal SCREENEVENT (EVENT_MOUSE_MOVE) probieren, ob das genauer ist. Habe aber bisher noch nie damit gearbeitet.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 26.08.2009, 12:20    Titel: Antworten mit Zitat

Danke für den Tipp - das kannte ich bisher nicht.
Mit Koordinaten sind vermutlich Pixel gemeint? Das ist schlecht, ich hätte das nämlich gerne unabhängig von der Auflösung.
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.08.2009, 12:28    Titel: Antworten mit Zitat

Der Trick ist, dass man mit einem Abstraction Layer arbeitet, das heißt, du überall Auflösungsunabhängig arbeitest, indem du deine eigenen Funktionen schreibst, die z.B. die Pixelwerte in koordinaten zwischen -1 und 1 umrechnen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 01.09.2009, 12:38    Titel: Antworten mit Zitat

hm, ich glaube ich muss mein Problem etwas genauer beschreiben (hab ich oben nicht so ausführlich gemacht weil ich nur sehr wenig Zeit hatte).
Wie gesagt mach ich das ganze bisher mit GETMOUSE. Das funktioniert einigermaßen, aber es ist eben abhängig von der Auflösung. Mit 1280x1024 hab ich dann eine höhere Mausgenauigkeit als bei 800x600. Ich hätte aber gerne, dass die Maus immer gleich genau ist, egal bei welcher Auflösung.
Da das ganze eben auflösungsabhängig ist, kann ich auch die Genauigkeit von neuen Mäusen nicht ausnutzen. Im Dokument "Taking Advantage of High DPI Mouse Movement" aus dem DirectX SDK wird als Ausweg die "WM_INPUT"-Message gezeigt, die Mausbewegungen angeblich direkt vom HID-Stack nimmt und so hochauflösende Daten ausspuckt.
Das ist ja eigentlich genau das was ich will, aber wie bekomme ich so etwas mit FreeBASIC hin? Und dann auch noch so dass es sowohl unter Windows als auch unter Linux arbeitet?
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz