Auswahlproblem in meiner Menu-Gui
Übersicht

KekskillerBetreff: Auswahlproblem in meiner Menu-Gui |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bastele momentan an einem Menu für meinen Karteneditor
und habe auch schnell und gut Erfolge gemacht. Nur hat sich da ein Auswahlproblem eingenistet. Die Werte von SELECTEDMENUPUNKT sind verfälscht im Gegensatz zu SELECTEDOBERMENU. Es werden unmögliche Zahlen angezeigt, aber naja. Hier ist der Code, hoffe jemand findet dort ein Problem: Code: [AUSKLAPPEN] Graphics 640,480,16,1
SetBuffer BackBuffer() Global button=LoadAnimImage("Button.png",85,38,0,2):MaskImage button,255,0,255 Global font=LoadAnimImage("Font.png",13,16,0,96):MaskImage font,0,255,0 Global cursor=LoadImage("Cursor.png"):MaskImage cursor,0,255,0 Global menutiles=LoadAnimImage("MenuTiles.png",116,17,0,8):MaskImage menutiles,255,0,255 Const FontBreite=13 Global ACTIVEMENU=0,SELECTEDOBERMENU=0,SELECTEDMENUPUNKT=0 Type obermenu Field name$ Field number Field status Field popup End Type Global obermenuzaehler,o.obermenu Type menupunkt Field name$ Field number Field parent Field status End Type Dim menupunktzaehler(8) Global m.menupunkt AddOberMenu("KARTE",1) AddMenuPunkt("SPEICH.",1,1) AddMenuPunkt("OEFFNEN",2,1) AddMenuPunkt("ENDE",3,1) AddOberMenu("ZOOM",2) AddMenuPunkt("#1",1,2) AddMenuPunkt("#2",2,2) AddMenuPunkt("#3",3,2) AddMenuPunkt("#4",4,2) AddMenuPunkt("#5",5,2) AddOberMenu("LAYER",3) AddMenuPunkt("1",1,3) AddMenuPunkt("2",1,3) AddMenuPunkt("3",1,3) AddMenuPunkt("4",1,3) AddMenuPunkt("5",1,3) AddOberMenu("MODUS",4) AddMenuPunkt("LOWER",1,4) AddMenuPunkt("UPPER",2,4) AddMenuPunkt("DATA",4,4) AddOberMenu("HILFE",5) AddMenuPunkt("README",1,5) AddMenuPunkt("INFO",2,5) Repeat Cls DrawAll_UPDATE() Text 10,60,SELECTEDOBERMENU Text 10,80,SELECTEDMENUPUNKT Flip Until KeyHit(1) End Function AddOberMenu(name$,number) o.obermenu=New obermenu o\name$=name$ o\number=number o\status=0 o\popup=0 obermenuzaehler=obermenuzaehler+1 End Function Function AddMenuPunkt(name$,number,parent) m.menupunkt=New menupunkt m\name$=name$ m\number=number m\parent=parent m\status=0 menupunktzaehler(parent)=menupunktzaehler(parent)+1 End Function Function DrawAll_UPDATE() ;Menus malen und prüfen For o.obermenu=Each obermenu buttonxpos=(z*ImageWidth(button))-(z*10) DrawImage button,buttonxpos,0,o\status SpeedPrint(buttonxpos+11,10,o\name$) If ACTIVEMENU=0 Then If ImageRectCollide(button,buttonxpos,0,o\status,MouseX(),MouseY(),1,1) Then o\status=1 Else o\status=0 Select o\status Case 1:If MouseHit(1) And menupunktzaehler(o\number)>0 Then:o\popup=1:ACTIVEMENU=o\number:EndIf End Select EndIf Select o\popup Case 1 height=menupunktzaehler(o\number)*ImageHeight(menutiles) z2=0 NOPOPUP=0 For m.menupunkt=Each menupunkt If m\parent=o\number Then punktypos=z2*ImageHeight(menutiles) tileypos=(ImageHeight(button)-5)+punktypos If ImageRectOverlap(menutiles,buttonxpos+5,tileypos,MouseX(),MouseY(),1,1) Then m\status=1 Else m\status=0:NOPOPUP=NOPOPUP+1 If MouseHit(1)=1 Then SELECTEDOBERMENU=m\parent:SELECTEDMENUPUNKT=m\number:o\status=0:o\popup=0:ACTIVEMENU=0 EndIf EndIf Select z2 Case 0:If height=ImageHeight(menutiles) Then tile=6+m\status Else tile=0+m\status Case menupunktzaehler(o\number)-1:tile=4+m\status Default:tile=2+m\status End Select DrawImage menutiles,buttonxpos+5,tileypos,tile SpeedPrint(buttonxpos+5+7,tileypos,m\name$) z2=z2+1 EndIf Next Select NOPOPUP Case menupunktzaehler(o\number):If MouseHit(1)=1 Then o\status=0:o\popup=0:ACTIVEMENU=0 End Select End Select z=z+1 Next ;Cursor FlushMouse() DrawImage cursor,MouseX(),MouseY() End Function Function SpeedPrint(x,y,txt$,plus=0) length=Len(txt$)*FontBreite For z=x To x+length-1 Step FontBreite pos=pos+1 DrawImage font,z+plus,y,Asc(Mid(txt$,pos,1))-32 Next End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group