SetVirtualResolution: Maus erweiterung

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

klin

Betreff: SetVirtualResolution: Maus erweiterung

BeitragSa, Jan 23, 2010 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo leute,
ich habe heute mal die tolle neue Funktion namens "SetVirtualResolution" kennen gelernt :>
Die Funktion ist echt klasse und macht bei mir kaum Probleme... Jedoch ist mir etwas böses aufgefallen. Und zwar, wird die Maus nicht an das SetVirtualResolution angepasst. Daher habe ich mir mal die mühe gemacht und sowas mal geschrieben.
Hier ist mal eine kleine Anleitung was so neues dazu gekommen ist:
1. SetMouseResolution()
Mit dieser Funktion kann man die Mauskoordinaten an die neue auflösung anpassen. Beispiel:
Normale Auflösung: 800,600
Neue Auflösung soll: 1280,800
BlitzMax: [AUSKLAPPEN]
Graphics 1280,800 'Neue Auflösung
SetVirtualResolution 800,600 'So war es vorher
SetMouseResolution(800,600,1280,800) ' Und nun (AlteW,AlteH,NeueW,NeueH)

So. Somit könnte man beispielsweise die Auflösung am besten anpassen.

2. KMouseX/Y()
Da man leider nicht von einem Modul auf das andere die Funktion überschreiben kann, muss man dies nun per hand machen im QuellText:
BlitzMax: [AUSKLAPPEN]
Function MouseX:Int() Return KMouseX() End Function
Function MouseY:Int() Return KMouseY() End Function

Nun wurde die MouseX/Y mit KMouseX/Y überschrieben, kann aber ganz normal mit MouseX/Y aufgerufen werden.

Allgemeines Beispiel:
BlitzMax: [AUSKLAPPEN]

SuperStrict
Import Klin.Mouse

Function MouseX:Int() Return KMouseX() End Function
Function MouseY:Int() Return KMouseY() End Function

Graphics 800,600
SetVirtualResolution 640,480
SetBlend ALPHABLEND
While Not KeyHit(KEY_ESCAPE)

DrawText "X",MouseX(),MouseY()

If KeyHit(KEY_A) Then SetMouseResolution(640,480,800,600) 'Funktion Aktivieren
If KeyHit(KEY_S) Then SetMouseResolution(0,0,0,0) 'Funktion Deaktivieren
Flip
Cls

Delay 1
Wend
Hier kann man mit A = Meine Funktion aktivieren und mit S = Meine Funktion Deaktivieren (Also die Maus wird nicht an SetVirtualResolution angepasst)

Und ja ich weiß, dass die koordinaten (je weiter man die Maus von dem 0 Punkt bewegt) nicht ganz genau angepasst werden (minimaler abstand zwischen der richtigen Maus).

Nun, hier ist das Modul:
www.klinsoft.de/bmax/klin.mod.rar

Sollte es vorschläge/fragen geben, bitte Posten Smile

THX
MFG
Klin

EDIT:
Sorry. Ich wusste nicht da es die "VirtualMouseX()" und "VirtualMouseY()" Funktion gibt.
  • Zuletzt bearbeitet von klin am Sa, Jan 23, 2010 14:17, insgesamt einmal bearbeitet

Artemis

BeitragSa, Jan 23, 2010 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, wenn ich jetzt so blöd Frage, aber was macht die Funktion VirtualMouseX aus dem BRL.Max2D-Modul? Habs nicht ausprobiert, könnte mir aber vorstellen, dass die genau das macht, was dein Modul macht.

coolo

BeitragSa, Jan 23, 2010 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt die Funktionen "VirtualMouseX()" und "VirtualMouseY()"
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

klin

BeitragSa, Jan 23, 2010 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
oh.. sorry das wusste ich nicht :<

Nagut^^ braucht also doch nicht jeder xP

Sorry.

MFG
Klin

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group