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:

Mausgeschwindigkeit

 
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
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 04.08.2010, 09:40    Titel: Mausgeschwindigkeit Antworten mit Zitat

Hey
Ich suche einen Befehl, der die Geschwindigkeit der Maus zurück gibt.
Also einen Befehl, den man mit MouseXSpeed vergleichen kann. Gibt es sowas in FreeBasic?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.08.2010, 10:23    Titel: Antworten mit Zitat

Selber bauen.
Stichwörter: Maus abfragen, alte Koordinaten, Grundrechenarten...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 04.08.2010, 11:51    Titel: Antworten mit Zitat

Ich habe jetzt eine Lösung gefunden, allerdings ist es sehr langsam und es hackt ziemlich nach:
Code:

Dim As Integer x, y, buttons
Dim As Integer oldx, oldy
Dim As Double newTime = 0, oldTime = 0, diffTime
Screen 18
Do
        oldx = x
        oldy = y
        GETMOUSE x, y,, buttons
        oldTime = newTime
        newTime = Timer
        diffTime = newTime - oldTime
       
        Locate 1, 1
        If x < 0 Then
                Print "Mouse not available or not on window"
        Else
                Print Using "Mouse position: ###:###  Buttons: "; x; y;
                If buttons And 1 Then Print "L";
                If buttons And 2 Then Print "R";
                If buttons And 4 Then Print "M";
                Print "   "
                Print "   "
                Print "Mouse xChange:"; x - oldx; "    "
                Print "Mouse yChange:"; y - oldy; "    "
                Print Using "Time interval: #.##"; diffTime
                Print Using "Mouse xSpeed (xChange / time interval): ####.##"; (x - oldx) / diffTime;
                Print "    "
                Print Using "Mouse ySpeed (yChange / time interval): ####.##"; (y - oldy) / diffTime;
                Print "    "
        End If
        Sleep 100
Loop While Inkey$ = ""
End

Wie kriege ich das schneller hin?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 04.08.2010, 12:09    Titel: Antworten mit Zitat

wie willst du mit nem programm die mausgeschwindigkeit messen? mit dem programm kannst du höchstens messen wie schnell der user seine maus schiebt, aber doch nicht wie groß die übersetzung von mausbwewegung auf cursor-bewegung ist Oo
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

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

Code:
PRINT USING "Mouse xSpeed (xChange / TIME interval): ####.##"; (x - oldx) / diffTime;
                PRINT USING "Mouse ySpeed (yChange / TIME interval): ####.##"; (y - oldy) / diffTime;

zwinkern
Damit kann man tatsächlich prüfen, wie schnell die Maus ist. Es erfüllt den selben Zweck wie "MouseXSpeed" und "MouseYSpeed" wie in BlitzBasic.
Mittlerweile habe ich aber den Fehler entdeckt, es lag nicht an dem oben stehenden Code. happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 04.08.2010, 18:45    Titel: Antworten mit Zitat

/edit scho gut happy
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 04.08.2010, 18:50    Titel: Antworten mit Zitat

Mag sein, aber das entspricht nunmal den Befehlen "MouseXSpeed" und "MouseYSpeed" und mehr wollte ich ja nicht zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 04.08.2010, 20:59    Titel: Antworten mit Zitat

westbeam, du könntest die funktionen selbst schreiben und static machen.
dadurch kannst du zwar immer das erste ergebnis nach einer längeren aufrufpause verwerfen, aber wenns kompatibel sein muss...
und n puffer wär nicht schlecht (durchschnittsspeed in den letzten 10 polls)
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 05.08.2010, 03:23    Titel: Antworten mit Zitat

MouseXSpeed gibt "nur" die X-Mouse-Differens seit dem letzem Aufruf zurück.

Da aber die Geschwindigkeit allein von der Häufigkeit des Funktionsaufrufes abhängt
wäre MouseXDiff() eine treffendere Bezeichnung.

Wie auch immer vergiss nicht das GetMouse() im Falle eines Fehlers
z.B. Mouse ist auserhalb des Fensters einen Wert <>0 zurück gibt.

Daher eine 1:1 Übersetzung von MouseXSpeed() müste ungefähr so aussehen.

Micha
Code:
function MouseXSpeed() as integer
  static oldx as integer = -1
  dim as integer x,y

  ' erster Aufruf
  if oldx=-1 then
    ' Im Fall eines Fehlers
    if GetMouse(oldx,y) then oldx=-1
    return 0
  else
    ' oldx ist gültig
    if GetMouse(x,y)=0 then
      function = x-oldx
      oldx=x
    else
      ' Im Fall eines Fehlers
      return 0
    end if
  end if
end function

screenres 640,480
while inkey=""
  locate 1,1
  print "dx = " & MouseXSpeed() & "   "
  sleep 100
wend
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