|
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: 24.01.2007, 21:07 Titel: Menü aus Bildern mit Ak-lib und Maus |
|
|
Hi Leute,
Ich mache gerade mein erstes textadventure, im Spiel funktioniert alles, aber ich möchte so'ne Art Launcher dazu machen. Also mit Maus, Bildern, etc. Das Problem:
Wenn ich mit der Maus über einen Menüpunkt fahre, soll dieser durch ein neues Bild ersetzt werden, aber wenn man mit der Maus weggeht soll das alte Bild wieder angezeigt werden. Und DAS krieg' ich nicht hin!
Code: |
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%
DEFINT A-Z
CALL xscreen(&H111)
CALL xmouse("OFF", 0, 0, 0)
CALL set.picture(picx%, pic1y%, "images\mmbut1.bmp")
CALL set.picture(picx%, pic2y%, "images\mmbut2.bmp")
CALL set.picture(picx%, pic3y%, "images\mmbut3.bmp")
CALL set.picture(picx%, pic4y%, "images\mmbut4.bmp")
CALL xmouse("ON", 0, 0, 0)
CALL load.xmo("NORMAL")
CALL rgbto16(255, 255, 255, li%)
CALL xline(pic1anfangX%, pic1anfangY%, pic1endeX%, pic1endeY%, li%, "B")
CALL xline(pic2anfangX%, pic2anfangY%, pic2endeX%, pic2endeY%, li%, "B")
CALL xline(pic3anfangX%, pic3anfangY%, pic3endeX%, pic3endeY%, li%, "B")
CALL xline(pic4anfangX%, pic4anfangY%, pic4endeX%, pic4endeY%, li%, "B")
main:
DO
CALL xmouse("CTRL", MausK%, MausX%, MausY%) 'MausK% - MausKnopf
IF MausX% > pic1anfangX% AND MausX% < pic1endeX% AND MausY% > pic1anfangY% AND MausY% < pic1endeY% AND MausK% = 0 THEN
CALL set.picture(picx%, pic1y%, "images\mmbut1p.bmp")
' mmbut1:
' IF MausX% > pic1anfangX% AND MausX% < pic1endeX% AND MausY% > pic1anfangY% AND MausY% < pic1endeY% AND MausK% = NOT 0 THEN GOTO mmbut1ch ELSE DO: CALL xmouse("CTRL", dum%, dum2%, dum3%): LOOP UNTIL dum% = 1 OR 2 OR 3
'mmbut1ch:
' CALL set.picture(picx%, pic1y%, "images\mmbut1.bmp")
GOTO main
ELSEIF MausX% > pic2anfangX% AND MausX% < pic2endeX% AND MausY% > pic2anfangY% AND MausY% < pic2endeY% AND MausK% = 0 THEN
CALL set.picture(picx%, pic2y%, "images\mmbut2p.bmp")
DO
LOOP UNTIL MausX% > pic2anfangX% AND MausX% < pic2endeX% AND MausY% > pic2anfangY% AND MausY% < pic2endeY% <> 0
CALL set.picture(picx%, pic2y%, "images\mmbut2.bmp")
ELSEIF MausX% > pic3anfangX% AND MausX% < pic3endeX% AND MausY% > pic3anfangY% AND MausY% < pic3endeY% AND MausK% = 0 THEN
CALL set.picture(picx%, pic3y%, "images\mmbut3p.bmp")
DO
LOOP UNTIL MausX% > pic3anfangX% AND MausX% < pic3endeX% AND MausY% > pic3anfangY% AND MausY% < pic3endeY% <> 0
CALL set.picture(picx%, pic3y%, "images\mmbut3.bmp")
ELSEIF MausX% > pic4anfangX% AND MausX% < pic4endeX% AND MausY% > pic4anfangY% AND MausY% < pic4endeY% AND MausK% = 0 THEN
CALL set.picture(picx%, pic4y%, "images\mmbut4p.bmp")
DO
LOOP UNTIL MausX% > pic4anfangX% AND MausX% < pic4endeX% AND MausY% > pic4anfangY% AND MausY% < pic4endeY% <> 0
CALL set.picture(picx%, pic4y%, "images\mmbut4.bmp")
END IF
'IF MausX% > 175 AND MausX% < 425 AND MausY% > 125 AND MausY% < 325 THEN
' CALL set.picture(picx%, pic1y%, "images\mmbut1.bmp")
' CALL set.picture(picx%, pic2y%, "images\mmbut2.bmp")
' CALL set.picture(picx%, pic3y%, "images\mmbut3.bmp")
' CALL set.picture(picx%, pic4y%, "images\mmbut4.bmp")
'END IF
IF MausX% > pic1anfangX% AND MausX% < pic1endeX% AND MausY% > pic1anfangY% AND MausY% < pic1endeY% AND MausK% = 1 THEN GOTO pic1
IF MausX% > pic2anfangX% AND MausX% < pic2endeX% AND MausY% > pic2anfangY% AND MausY% < pic2endeY% AND MausK% = 1 THEN GOTO pic2
IF MausX% > pic3anfangX% AND MausX% < pic3endeX% AND MausY% > pic3anfangY% AND MausY% < pic3endeY% AND MausK% = 1 THEN GOTO pic3
IF MausX% > pic4anfangX% AND MausX% < pic4endeX% AND MausY% > pic4anfangY% AND MausY% < pic4endeY% AND MausK% = 1 THEN GOTO pic4
LOOP
pic1:
CALL xPRINT(0, 0, "1")
END
pic2:
CALL xPRINT(0, 0, "2")
END
pic3:
CALL xPRINT(0, 0, "3")
END
pic4:
CALL xPRINT(0, 0, "4")
END
|
|
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.01.2007, 21:11 Titel: |
|
|
Was GENAU bekommst du nicht hin? Das Wiederanzeigen des alten Bildes? _________________ 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: 24.01.2007, 21:51 Titel: |
|
|
Also,
Ich geh mit der Maus darüber, dann erscheint das hinterlegte Bild (Schrift farbig hinterlegt), dann gehe ich mit der Maus wieder zurück, und während dieses Vorgangs passiert:
A) Das hinterlegte Bild flackert
B) Die Maus verschwindet
C) Das hinterlegte Bild geht nicht weg
|
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.01.2007, 21:58 Titel: |
|
|
hi csde_rats, schön dich hier zu sehn
Also so würde ich das machen:
2 variablen, status und alterstatus.
zu beginn:
Code: |
status = 0
alterstatus = 0
if [maus über dem bild] status = 1
if [maus nicht über dem bild] status = 0
if status <> alterstatus then [jetzt das jeweilige bild zeichen!]
alterstatus = status
|
ich hoffe, dir hilft dieser pseudocode. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 24.01.2007, 22:01 Titel: |
|
|
Hi Jojo ,
Okay, ich denke ich werde mir einfach mal eine kleine SUB schreiben, in der ich das dann mal umsetzte .
Jedenfalls: Danke für eure schnellen Antworten! |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.01.2007, 22:23 Titel: |
|
|
Hehe, meinen Post nicht so ansehen, als wöllte ich nicht helfen.
Nur ist es so, dass man oftmals keine Lust hat, in 'nem Code nach irgend 'nem Fehler zu suchen, von dem man nicht weiß, was es ist.
In deinem Fall hast du nur gesagt, dass es nicht geht. _________________ 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: 24.01.2007, 22:27 Titel: |
|
|
JUHU
ES FUNKTIONIERT !!!
danke Jojo!!!
|
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 24.01.2007, 22:29 Titel: |
|
|
@mao:
Hast ja recht, ich wusste nur selber net' woran's lag ...
Und natürlich den geänderten Quelltext:
Code: |
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"
DEFINT A-Z
CALL xscreen(&H111)
CALL xmouse("OFF", 0, 0, 0)
CALL set.picture(picx%, pic1y%, "images\mmbut1.bmp")
CALL set.picture(picx%, pic2y%, "images\mmbut2.bmp")
CALL set.picture(picx%, pic3y%, "images\mmbut3.bmp")
CALL set.picture(picx%, pic4y%, "images\mmbut4.bmp")
CALL xmouse("ON", 0, 0, 0)
CALL load.xmo("NORMAL")
CALL rgbto16(255, 255, 255, li%)
CALL xline(pic1anfangX%, pic1anfangY%, pic1endeX%, pic1endeY%, li%, "B")
CALL xline(pic2anfangX%, pic2anfangY%, pic2endeX%, pic2endeY%, li%, "B")
CALL xline(pic3anfangX%, pic3anfangY%, pic3endeX%, pic3endeY%, li%, "B")
CALL xline(pic4anfangX%, pic4anfangY%, pic4endeX%, pic4endeY%, li%, "B")
pic1status = 0
pic1astatus = 0
pic2status = 0
pic2astatus = 0
pic3status = 0
pic3astatus = 0
pic4status = 0
pic4astatus = 0
main:
DO
CALL xmouse("CTRL", MausK%, MausX%, MausY%) 'MausK% - MausKnopf
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
CALL set.picture(picx%, pic1y%, pic1pressed)
ELSE
CALL set.picture(picx%, pic1y%, pic1)
IF pic2status <> pic2astatus THEN
CALL set.picture(picx%, pic2y%, pic2pressed)
ELSE
CALL set.picture(picx%, pic2y%, pic2)
IF pic3status <> pic3astatus THEN
CALL set.picture(picx%, pic3y%, pic3pressed)
ELSE
CALL set.picture(picx%, pic3y%, pic3)
IF pic4status <> pic3astatus THEN
CALL set.picture(picx%, pic4y%, pic4pressed)
ELSE
CALL set.picture(picx%, pic4y%, pic4)
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 pic1
IF MausX% > pic2anfangX% AND MausX% < pic2endeX% AND MausY% > pic2anfangY% AND MausY% < pic2endeY% AND MausK% = 1 THEN GOTO pic2
IF MausX% > pic3anfangX% AND MausX% < pic3endeX% AND MausY% > pic3anfangY% AND MausY% < pic3endeY% AND MausK% = 1 THEN GOTO pic3
IF MausX% > pic4anfangX% AND MausX% < pic4endeX% AND MausY% > pic4anfangY% AND MausY% < pic4endeY% AND MausK% = 1 THEN GOTO pic4
LOOP
pic1:
CALL xPRINT(0, 0, "1")
END
pic2:
CALL xPRINT(0, 0, "2")
END
pic3:
CALL xPRINT(0, 0, "3")
END
pic4:
CALL xPRINT(0, 0, "4")
END
|
Zuletzt bearbeitet von csde_rats am 25.01.2007, 16:50, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.01.2007, 23:06 Titel: |
|
|
Und natürlich in Zukunft den EDIT-Button über deinen Posts verwenden, wenn du innerhalb kurzer zeit deinen beitrag ergänzen willst _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 25.01.2007, 07:23 Titel: |
|
|
Jo,
Bin ja auch neu hier (aber nicht neu in QB ). |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 25.01.2007, 18:29 Titel: |
|
|
Noch nie in 'nem Board gewesen?
Außerdem habe ich nicht gesagt, dass ich wissen will, was die _Ursache_ ist. Ich will bei solchen Dingen erstmal wissen, was der _Fehler_ selbst ist. _________________ 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: 25.01.2007, 18:40 Titel: |
|
|
O doch, Beispiele:
Zensiert
Zensiert
Ich bin nur noch nicht in einem Programmiererforum gewesen. Von daher ist es für mich erstmal schwierig sich so auszudrücken, das andere Programmierer es verstehen. (Die Shoutbox auf saga-games.ath.cx kann man ja kein Forum nennen ) |
|
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.
|
|