MouseX() und MouseY() Speed???

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Te(Y)House

Betreff: MouseX() und MouseY() Speed???

BeitragSa, Nov 25, 2006 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leuz,
habe mich mal mit dem Befehl MouseXSpeed() bzw. MouseYSpeed()
beschäftigit. In der Onlinehelp ist ja nen beispiel drin, das genau das macht was
ich wollte: Undzwar will ich das wenn man die Maus bewegt sich noch um ein paar
Pixel weiterwandert nach dem bewegen... leider ist das dort angegebende Beispiel
irgendwie nicht verständlich für mich... kennt ihr vielleicht eins das leichter zu verstehen ist?

Wer sich das in der Onlinehelp mal ansehen will >
Onlinehilfe > 2D Befehle > Maus > MouseXSpeed() oder MouseYSpeed()


Mfg.
Te(Y)

Hubsi

BeitragSa, Nov 25, 2006 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich Dich recht verstehe suchst Du nach ql:MoveMouse(). Damit kannst Du (unter zuhilfenahme von besagtem Mouse...Speed()) die Maus ein wenig nachschlittern lassen.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Te(Y)House

BeitragSa, Nov 25, 2006 18:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für deine Antwort, nur leider ist mir noch nicht ganz klar wie ich das auf
möglichst einfache Weise umsetzen kann?
Beispielcode pls? Very Happy


Mfg.
Te(Y)

ToeB

BeitragSa, Nov 25, 2006 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

MoveMouse x,y ;setz Maus an die x/y Koordinaten
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

FBI-blitz

BeitragSa, Nov 25, 2006 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
du fragst einfach ab, ob (bzw wie schnell) die Maus bewegt wurde und bewegst sie dann um einen bestimmten Abstand (mit movemouse). Dann addierst du noch die nach-schlitter-strecke und fertig Wink

Probier einfach mal n bisl rum
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

Te(Y)House

BeitragSa, Nov 25, 2006 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die Antworten!
Habe jetzt nen Code gefunden der das macht was ich will...
aber hat ihr auch ne Idee wie ich das ganze auf die Tastatur umsetzen
kann?

Blitzcoder

Newsposter

BeitragSa, Nov 25, 2006 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Statt MouseSpeed fragst du eben bestimmte Tasten ab.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Te(Y)House

BeitragSa, Nov 25, 2006 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
???
Das mit diesem Nachzieh EffekT?
Hier mein Code für den Effekt mit der Maus:

Code: [AUSKLAPPEN]
Graphics 1027,768,8,2
SetBuffer BackBuffer()
HidePointer
Repeat

xspeed=xspeed*.9+MouseXSpeed()/1.3
x=x+xspeed/7

yspeed=yspeed*.9+MouseySpeed()/1.3
y=y+yspeed/7



Rect x,y,10,80,1

flip
Cls
Until KeyHit(1)
End


???
 

FBI-blitz

BeitragSa, Nov 25, 2006 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich versteh dich jetzt net ganz...
Du willst die Maus mit Hilfe der Tastatur bewegen???

Falls ja: Das geht doch fast genauso, außer dass du nicht die Maus sondern die Tastatur abfragst.

Oder willst du ein bestimmtes Objekt mit der Tastatur bewegen und DAS soll dann auch so einen "nachzieh"-Effekt bekommen?

Das ist eigentlich auch genau das gleiche, nur dass du eben die Tastatur abfragst und das Objekt bewegst statt der Maus Wink
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

Te(Y)House

BeitragSo, Nov 26, 2006 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, anders:
Ich will ein bestimmtest Objekt nicht mit der Maus bewegen, sondern mit der
Tastatur... alles soweit kein Problem wenn ich das via. Keydown() mache... nur will
ich das dieses Objekt halt diesen nachzieh Effekt hat... also eigentlich das gleiche wie mit der Maus nur das es halt mit der Tastatur passiert!?
 

FBI-blitz

BeitragSo, Nov 26, 2006 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will ja nicht unhöflich werden, aber n bisschen nachdenken gehört zum Programmieren dazu!

Ich würde das so lösen, dass du in einer Variable speicherst, wann die Taste zum letzten mal gedrückt wurde. Diese Variable wird bei jedem Schleifendurchlauf wieder auf 0 gesetzt, wenn keine Taste gedrückt wird. Und wenn keine gedrückt wird, dann überprüfst du noch, ob die Variable den Wert 1 hat, was bedeuten würde, dass im letzten Schleifendurchgang noch eine Taste gedrückt wurde.

Dann speicherst du in einer anderen Variable (ich würde es in der gleichen machen aber das is wahrscheinlich zu kompliziert...^^) Die Zeit, wann losgelassen wurde (millisecs() ). Dann kannst du das Objekt ganz einfach solange bewegen, bis die Differenz zwischen der aktuellen Zeit und der, wo losgelassen wurde, größer als gewünscht ist.

FBI
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

TheMatrix

BeitragSo, Nov 26, 2006 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich erklär dir nocheinmal, was die anderen nun meinten. Es ist schon indirekt falsch zusagen, das man die Geschwindigkeit mit der Tastatur abfragt. Es ist besser zusagen, man fragt ab, ob eine bestimmte Taste auf der Tastaur bestätigt wurde und setzt dann manuell die Geschwindigkeit für das Objekt.

Ich habe dir den Code nocheinmal optimiert. Es wird einmal die Geschwindigkeit durch die Maus gesetzt, so wie durch die Tastaur.

speed- x und y, sind die Variabeln, die die momentane Geschwindigkeit für das Objekt vorgeben. Diese können beliebig gesetzt werden.

Code: [AUSKLAPPEN]

Graphics 1027,768,8,2
SetBuffer BackBuffer()
HidePointer
Repeat

; Pfeil Links
If KeyDown(203) Then speedx = speedx-1 Else If speedx<0 Then speedx=0
; Pfeil Rechts
If KeyDown(205) Then speedx = speedx+1 Else If speedx>0 Then speedx=0
; Pfeil Rauf
If KeyDown(200) Then speedy = speedy-1 Else If speedy<0 Then speedy=0
; Pfeil Runter
If KeyDown(208) Then speedy = speedy+1 Else If speedy>0 Then speedy=0

;-- Maus Kontrolle
msx = MouseXSpeed() ; MouseXSpeed speichern
msy = MouseYSpeed() ; MouseYSpeed speichern

; Kontrolle ob die Maus bewegt wurde
If msx<>0 Then speedx = msx ; Wenn ja, dann übergebe MouseXSpeed der Objektgeschwindigkeit.
If msy<>0 Then speedy = msy

xspeed=xspeed*.9+speedx/1.3 ; speedx ist die generelle Bewegungsvariabel. Sie kann durch Tastaurabfrage,
                     ; Mauspostion, Joystickabfrage oder auch künstlich gesetzt werden.
x=x+xspeed/7

yspeed=yspeed*.9+speedy/1.3
y=y+yspeed/7



Rect x,y,10,80,1

Flip
Cls
Until KeyHit(1)
End


Ich hoffe, du hast dadurch verstanden, was wir meinen.

Mfg, TheMatrix
°_° °.° °~° °v° .. -.-

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group