 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 05.03.2007, 17:05 Titel: Woher weiß man ob keine Maustaste gedrückt ist? |
|
|
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. 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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 05.03.2007, 17:15 Titel: |
|
|
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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 05.03.2007, 17:20 Titel: |
|
|
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 |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 05.03.2007, 17:20 Titel: |
|
|
Mausrad geht aber ich hatte es schon getestet |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 05.03.2007, 17:24 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 05.03.2007, 17:26 Titel: |
|
|
Schau dir nochmal die Bedeutung eines Bits an und dann die eines Bytes, evtl. hast du da ja gerade etwas verwechselt.
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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 05.03.2007, 17:27 Titel: |
|
|
aso, na denn is das prob ja gelöst xD
/edit:
@Mao:
ja da hab ich irgendwie einen denkfehler gemacht *träumerisch-aus-dem-fenster-blick-darauf-kopf-gegen-wand-ramm*  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
|
|
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.
|
|