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:

Menü aus Bildern mit Ak-lib und Maus

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
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: 24.01.2007, 20:07    Titel: Menü aus Bildern mit Ak-lib und Maus Antworten mit Zitat

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! weinen

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



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

BeitragVerfasst am: 24.01.2007, 20:11    Titel: Antworten mit Zitat

mit den Augen rollen
Was GENAU bekommst du nicht hin? Das Wiederanzeigen des alten Bildes?
_________________
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: 24.01.2007, 20:51    Titel: Antworten mit Zitat

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

weinen weinen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.01.2007, 20:58    Titel: Antworten mit Zitat

hi csde_rats, schön dich hier zu sehn lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



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

BeitragVerfasst am: 24.01.2007, 21:01    Titel: Antworten mit Zitat

Hi Jojo happy ,
Okay, ich denke ich werde mir einfach mal eine kleine SUB schreiben, in der ich das dann mal umsetzte zwinkern .
Jedenfalls: Danke für eure schnellen Antworten!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



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

BeitragVerfasst am: 24.01.2007, 21:23    Titel: Antworten mit Zitat

Hehe, meinen Post nicht so ansehen, als wöllte ich nicht helfen. zwinkern
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. zwinkern
_________________
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: 24.01.2007, 21:27    Titel: Antworten mit Zitat

JUHU vor Freude klatschen vor Freude klatschen
ES FUNKTIONIERT !!!
Yahooo!!!!
Yahooo!!!!

danke Jojo!!!

lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



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

BeitragVerfasst am: 24.01.2007, 21:29    Titel: Antworten mit Zitat

@mao:
Hast ja recht, ich wusste nur selber net' woran's lag ... verwundert


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, 15:50, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.01.2007, 22:06    Titel: Antworten mit Zitat

Und natürlich in Zukunft den EDIT-Button über deinen Posts verwenden, wenn du innerhalb kurzer zeit deinen beitrag ergänzen willst zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



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

BeitragVerfasst am: 25.01.2007, 06:23    Titel: Antworten mit Zitat

Jo,
Bin ja auch neu hier (aber nicht neu in QB mit den Augen rollen ).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



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

BeitragVerfasst am: 25.01.2007, 17:29    Titel: Antworten mit Zitat

Noch nie in 'nem Board gewesen? zwinkern

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. zwinkern
_________________
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: 25.01.2007, 17:40    Titel: Antworten mit Zitat

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 cool )
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 -> Spezielle Fragen 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