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:

Woher weiß man ob keine Maustaste gedrückt ist?

 
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
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.03.2007, 17:05    Titel: Woher weiß man ob keine Maustaste gedrückt ist? Antworten mit Zitat

Hi Leute,
ich habe (mithilfe von Jojo, Mao usw. xD) dieses kleine Prog geschrieben. Da ich jetzt auf fb umgestigen bin, habe ich auch das nach fb konvertiert. lächeln Nur leider ist da das Prob: Wie weiß ich wo die Maus ist, ohne dass ein knopf gedrückt ist??

(Source (dims:)
Code:

dim as integer MausX, MausY, MausK

dim as integer pic1status ,pic1astatus
dim as integer pic2status, pic2astatus
dim as integer pic3status ,pic3astatus
dim as integer pic4status, pic4astatus

CONST picx = 175
CONST pic1y = 125
CONST pic2y = 175
CONST pic3y = 225
CONST pic4y = 275
CONST picsendx = 425
CONST picsendy = 50

CONST pic1anfangY = 125
CONST pic1anfangX = picx
CONST pic1endeY = pic1y + 50
CONST pic1endeX = picsendx

CONST pic2anfangY = 175
CONST pic2anfangX = picx
CONST pic2endeY = pic2y + 50
CONST pic2endeX = picsendx

CONST pic3anfangY = 225
CONST pic3anfangX = picx
CONST pic3endeY = pic3y + 50
CONST pic3endeX = picsendx

CONST pic4anfangY = 275
CONST pic4anfangX = picx
CONST pic4endeY = pic4y + 50
CONST pic4endeX = picsendx

CONST pic1 = "images\mmbut1.bmp"
CONST pic1pressed = "images\mmbut1p.bmp"

CONST pic2 = "images\mmbut2.bmp"
CONST pic2pressed = "images\mmbut2p.bmp"

CONST pic3 = "images\mmbut3.bmp"
CONST pic3pressed = "images\mmbut3p.bmp"

CONST pic4 = "images\mmbut4.bmp"
CONST pic4pressed = "images\mmbut4p.bmp"



(Main Source:)
Code:

    put(picx,pic1y),spic1,pset
    put(picx,pic2y),spic2,pset
    put(picx,pic3y),spic3,pset
    put(picx,pic4y),spic4,pset

    pic1status = 0
    pic1astatus = 0

    pic2status = 0
    pic2astatus = 0

    pic3status = 0
    pic3astatus = 0

    pic4status = 0
    pic4astatus = 0
   
        DO
            Getmouse mausx, mausy,,mausk

            IF MausX > pic1anfangX AND MausX < pic1endeX AND MausY > pic1anfangY AND MausY < pic1endeY AND MausK = 0 THEN pic1status = 1
            IF MausX > NOT pic1anfangX AND MausX < NOT pic1endeX AND MausY > NOT pic1anfangY AND MausY < NOT pic1endeY THEN pic1status = 0

            IF MausX > pic2anfangX AND MausX < pic2endeX AND MausY > pic2anfangY AND MausY < pic2endeY AND MausK = 0 THEN pic2status = 1
            IF MausX > NOT pic2anfangX AND MausX < NOT pic2endeX AND MausY > NOT pic2anfangY AND MausY < NOT pic2endeY THEN pic2status = 0

            IF MausX > pic3anfangX AND MausX < pic3endeX AND MausY > pic3anfangY AND MausY < pic3endeY AND MausK = 0 THEN pic3status = 1
            IF MausX > NOT pic3anfangX AND MausX < NOT pic3endeX AND MausY > NOT pic3anfangY AND MausY < NOT pic3endeY THEN pic3status = 0

            IF MausX > pic4anfangX AND MausX < pic4endeX AND MausY > pic4anfangY AND MausY < pic4endeY AND MausK = 0 THEN pic4status = 1
            IF MausX > NOT pic4anfangX AND MausX < NOT pic4endeX AND MausY > NOT pic4anfangY AND MausY < NOT pic4endeY THEN pic4status = 0


            IF pic1status <> pic1astatus THEN
                put(picx,pic1y),spic1pressed,pset
            ELSE
                put(picx,pic1y),spic1,pset
            end if

            IF pic2status <> pic2astatus THEN
                put(picx,pic2y),spic2pressed,pset
            ELSE
                put(picx,pic2y),spic2,pset
            end if

            IF pic3status <> pic3astatus THEN
                put(picx,pic3y),spic3pressed,pset
            ELSE
                put(picx,pic3y),spic3,pset
            end if

            IF pic4status <> pic3astatus THEN
                put(picx,pic4y),spic4pressed,pset
            ELSE
                put(picx,pic4y),spic4,pset
            END IF


            pic1status = pic1astatus
            pic2status = pic2astatus
            pic3status = pic3astatus
            pic4status = pic4astatus


            IF MausX > pic1anfangX AND MausX < pic1endeX AND MausY > pic1anfangY AND MausY < pic1endeY AND MausK = 1 THEN GOTO newgame :end if
           ' IF MausX > pic2anfangX AND MausX < pic2endeX AND MausY > pic2anfangY AND MausY < pic2endeY AND MausK = 1 THEN :end if
           ' IF MausX > pic3anfangX AND MausX < pic3endeX AND MausY > pic3anfangY AND MausY < pic3endeY AND MausK = 1 THEN credits :end if
            IF MausX > pic4anfangX AND MausX < pic4endeX AND MausY > pic4anfangY AND MausY < pic4endeY AND MausK = 1 THEN goto vormenu:end if

        LOOP


_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



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

BeitragVerfasst am: 05.03.2007, 17:15    Titel: Antworten mit Zitat

Code:
getmouse mx,my[,mrad[,mbutton]]

mx und my liefert die Mauskoordinaten, mbutton den Button, mrad das Mausrad (letztes habe ich noch nicht getestet).

Sehe das Problem noch nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.03.2007, 17:20    Titel: Antworten mit Zitat

FB Hilfe hat Folgendes geschrieben:

(...)
'Buttons' gibt an, welche Maustasten gerade gedrückt sind:
Bit 0 wird gesetzt, wenn die LINKE Maustaste gedrückt wird.
Bit 1 wird gesetzt, wenn die RECHTE Maustaste gedrückt wird.
Bit 2 wird gesetzt, wenn die MITTLERE Maustaste gedrückt wird.
(...)


Es gibt kein bit, dass aussagt ob keine taste gedrückt ist! bit 0 ist ja schon eine gedrückte Taste.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 05.03.2007, 17:20    Titel: Antworten mit Zitat

Mausrad geht aber happy ich hatte es schon getestet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 05.03.2007, 17:24    Titel: Antworten mit Zitat

bit 0 GESETZT (also mbutton=1) heißt: linke Maustaste gedrückt.

0: keine Taste
1: links
2: rechts
3: links+rechts
4: Mitte
usw.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 05.03.2007, 17:26    Titel: Antworten mit Zitat

Schau dir nochmal die Bedeutung eines Bits an und dann die eines Bytes, evtl. hast du da ja gerade etwas verwechselt. lächeln
Ein Bit ist entweder 0 oder ein, ein Byte ein Wert aus 8 Bits mit dem Maximalwert 255.
Wenn also alle 3 Bits nicht gesetzt sind, ist keine Maustaste gedrückt.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.03.2007, 17:27    Titel: Antworten mit Zitat

aso, na denn is das prob ja gelöst xD grinsen

/edit:
@Mao:
ja da hab ich irgendwie einen denkfehler gemacht mit dem Kopf durch die Mauer wollen *träumerisch-aus-dem-fenster-blick-darauf-kopf-gegen-wand-ramm* lachen
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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