menü mit leuchtenden buttons

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dragonkiller

Betreff: menü mit leuchtenden buttons

BeitragMi, Dez 27, 2006 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo
ich hab mir für ein menü verschiedene button gemalt die dann je nachdem ob die maus drauf is oder nich eine weise umrandung haben, aber ich möchte nicht für jeden button den ich in mein menü einbringe eine extra kollisionsabfrage machen müssen geht das auch einfacher?

Code: [AUSKLAPPEN]

Graphics3D 1024,768,32,2

SetBuffer BackBuffer()

;images laden
ok_button           = LoadImage("ok_button.png")
ok_button_mark      = LoadImage("ok_button_mark.png")
beenden_button      = LoadImage("beenden_button.png")
beenden_button_mark = LoadImage("beenden_button_mark.png")
cursor              = LoadImage("cursor.png")

MaskImage ok_button,0,0,0
MaskImage ok_button_mark,0,0,0
MaskImage cursor,0,0,0

gw=GraphicsWidth()
gh=GraphicsHeight()

;-------------------------------------------------------------[Hauptschleife]----------------------------------------------------------
While Not KeyHit(1)

mx=MouseX()
my=MouseY()

If ImagesCollide(ok_button,0,gh-70,0,cursor,mx,my,0)
   mouseonpic=True
   Else
      mouseonpic=False

EndIf

;button leuchtet nich
If mouseonpic=False
DrawImage ok_button,0,gh-70
EndIf

;button leuchtet
If mouseonpic=True
DrawImage ok_button_mark,0,gh-70
EndIf

DrawImage cursor,mx,my
Flip
Cls

Wend

End

FreetimeCoder

BeitragMi, Dez 27, 2006 23:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If ImagesCollide(ok_button,0,gh-70,0,cursor,mx,my,0)
     DrawImage ok_button_mark,0,gh-70
   Else
     DrawImage ok_button,0,gh-70
EndIf


Einfacher geht es aber mit "LoadAnimImage"
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

WEBLink

BeitragDo, Dez 28, 2006 1:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, geht auch mit

"Loadimage"

Beide Buttonsbilder auf eine Imagedatei

und beim zeichnen einfach
"Drawimagerect" statt "Drawimage" nehmen.

Schau im Index so mach ich es immer.

MfG

Dragonkiller

BeitragDo, Dez 28, 2006 1:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ich mein das so:
wenn ich jetzt noch nen beenden button einfüge müsste ich ja nochmal ne kollisionsabfrage für den button schreiben un das dann für jeden weiteren
 

Marek

BeitragDo, Dez 28, 2006 2:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, nem doch ne symple Function, z.b.:
(Ein einfaches Programm ohne Grafiken, daran kann man aber noch einiges verbessern)
Code: [AUSKLAPPEN]

Graphics 1024,768,0,1
SetBuffer BackBuffer()
While Not KeyDown(1)
 Cls
 Color 255,255,255
 If Button(0,25)=1 Then
  Text 0,0,"Button wird gedrückt."
 Else
  Text 0,0,"Button wird nicht gedrückt."
 EndIf
 Color 0,255,0
 Line MouseX(),MouseY(),MouseX()+10,MouseY()
 Line MouseX(),MouseY(),MouseX(),MouseY()+10
 Line MouseX()+10,MouseY(),MouseX(),MouseY()+10
 Flip
Wend
End

Function Button(x, y)
 Bild1=CreateImage(200,200)
 Bild2=CreateImage(200,200)
 SetBuffer ImageBuffer(Bild2)
 ClsColor 255,0,0
 Cls
 ClsColor 0,0,255
 SetBuffer BackBuffer()
 DrawBlock Bild1,x,y
 Punkt=CreateImage(1,1)
 If ImagesOverlap(Bild1,x,y,Punkt,MouseX(),MouseY()) Then
  DrawBlock Bild2,x,y
  If MouseDown(1)=1 Then
   ret=1
  EndIf
 EndIf
 If Not ret=1 Then
  Return 0
 Else
  Return 1
 EndIf
 FreeImage Punkt
 FreeImage Bild1
 FreeImage Bild2
End Function

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group