Problm mit Menü
Übersicht

![]() |
LifetecBetreff: Problm mit Menü |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ich will ein Zins errechner Bauen und habe jetzt eine Konstruktion mit Menü Button doch seit ich Input reingeschrieben habe wird der Bildschirm schwarz wenn ich es starte und nach dem Eingeben kommt erst das Bild.
Code: [AUSKLAPPEN] ; HAUPTMENU.BB
Graphics 1024,768, 16,1 hinter = LoadImage ("c:\Zinsen\Menu.bmp") B1 = LoadImage("c:\Zinsen\B1.bmp") tiles = LoadImage ("c:\blocks1.bmp") maus = LoadImage ("c:\pointer.bmp") font = LoadFont("Times New Roman", 40, 1, 0, 0) WP = LoadImage("c:\Zinsen\WP.bmp") SetFont font ; Graphik für Menüpunkt erzeugen stein = CreateImage(32,32) SetBuffer ImageBuffer(stein) DrawImageRect tiles, 0, 0, 444, 308, 32, 32 ScaleImage stein, 8, 2 ; Graphik für aktiven Spielstein erzeugen aktivstein = CreateImage(32,32) SetBuffer ImageBuffer(aktivstein) DrawImageRect tiles, 0, 0, 2, 342, 32, 32 ScaleImage aktivstein, 8, 2 ; Menü definieren Print CurrentTime() Dim MenuZeile(3) : Dim MenuName$(3) MenuZeile(1) = 100 : MenuName$(1) = "Neu" MenuZeile(2) = 200 : MenuName$(2) = "Hilfe" MenuZeile(3) = 300 : MenuName$(3) = "Ende" ; ; Hauptmenü-Schleife ; SetBuffer BackBuffer() Repeat TileBlock hinter Menu = 0 X = MouseX() Y = MouseY() For I=1 To 3 DrawImage B1, 575, 100 ;rein proggen DrawImage WP, 575, 300 Locate 600,335 : Input() If ImageRectOverlap (maus, X, Y, 192, 100*I, 256, 64) Then DrawImage aktivstein, 192, I * 100 Menu = I Else DrawImage stein, 192, I * 100 EndIf Text (640 - StringWidth( MenuName$(I) )) / 2, I*100 + 12, MenuName$(I) Next DrawImage maus, X,Y Flip If MouseHit(1) Then If Menu = 1 Then Start() If Menu = 2 Then Einstellungen() If Menu = 3 Then Ende() EndIf Until KeyHit(1) End ; ; Funktionen für Menüpunkte ; Function Start() Repeat Cls Text 100,100, "Spielstart" Flip Until KeyHit(1) End Function Function Einstellungen() Repeat Cls Flip Until KeyHit(1) End Function Function Ende() Repeat Cls Locate 100,100 Print "ESC drücken !" Flip Until KeyHit(1) End End Function Was mach ich falsch ???? |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Du machst nichts falsch! Der Befehl Input ist halt so, dass das Programm an der Stelle wo der Befehl auftaucht anhält und wartet bis du was Eingegeben hast und enter gedrückt hast! Wenn dir das nicht passt musst du dir eine eigene Input-Routine schreiben per Getkey() und Chr ... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist, dass Input leider den Programmfluss stoppt, bis die eingabe beendet ist.
Wenn du etwas entsprechendes mit deinem selbstgemachten GUI willst, musst du dir eigene eingabefunktionen schreiben, die das neuzeichnen etc nicht blockieren. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Lifetec |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin ja totaler anfanger wie geht denn das so ein Programm zu schreiben was denn Bfehlsfluss nicht aufhält kann mir jemand das zeigen. Damit ich weiß wie so etwas aussieht ??? | ||
![]() |
Lifetec |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe jetzt festgestellt das wenn ich das Programm starte, der Befehl Input nicht mehr aufhort also das es immer wieder in einer neuen Zeile losgeht.
Wie kann ich das verhinder ???? |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Das liegt daran, dass du den Input Befehl jeden Schleifendurchlauf ausführen lässt.... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Lifetec |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und was kann ich dagegen machen ??? | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du entfernst dein Input-Befehl aus der Schleife. Setzt es irgendwo an einer anderen Stelle vor der Schleife, wenn nur einmal eine Eingabe erfolgen soll. Soll im Menü immer wieder darauf zugegriffen werden können, dann musst du dir deine eigene Routine dafür schreiben... | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group