Menü überprüfen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Metamorphose

Betreff: Menü überprüfen

BeitragMo, Apr 27, 2009 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Miteinander!
Anfängerfragen.
Ich hab mit gedacht ich würde gerne meine B3D-Kenntnisse erweitern und habe ein kleines Menü geschrieben, jetzt wär jemand so nett es kurz anzuschaun?
Mir ist nähmlich schleierhaft, wenn ich von startgame() zu game2() geh, da läuft die schleife ja noch. Würde, wenn ich dies immer so mache, und in game2() auch eine schlaufe herrscht, das des programm nicht unnötig verlangsamen? Also wenns game2(), game3() usw gäbe? Man kann ja nicht vor dem aufruf einer Funktion ein Exit machen. Dann ist das Programm einfach beendet.
Und ja - es ist ein recht langer code für sowas wohl simples, bin halt wie gesagt das erste mal dran an schleifen (wenn sich jemand errinert an vorhergehende posts, wollte ja nen textadventure machen ohne schleifen...)

Der Code ist:
Code: [AUSKLAPPEN]

Graphics 800, 600, 32, 2
SetBuffer BackBuffer()
Global y1
y1=296

startgame()

Function startgame()
menu=1

Repeat         ; Wiederhole solange...
Cls
Text 400,12,"hallo", True
Text 400,24,"ich wollt nur mal was sagen", True
Text 400,36,"Menu ist auf "+menu+" und y1 auf "+y1, True
Text 400, 300, "JA", True
Text 400, 320, "NEIN", True
Text 400, 340, "VIELLEICHT", True

If KeyHit(28) = 1 And menu=1 Then
game2()
Else If KeyHit(1) = 1 Then
Exit
Else If KeyHit(208) = 1 Then
menu = menu + 1
y1=y1+20
Else If KeyHit(200) = 1 Then
menu = menu -1
y1=y1-20
End If

If menu=1Then
Color 205,0,0
Rect 250, y1, 300, 20, 0
Color 255,255,255
Else If menu=2 Then
Color 205,0,0
Rect 250, y1, 300, 20, 0
Color 255,255,255
Else If menu=3 Then
Color 205,0,0
Rect 250, y1, 300, 20, 0
Color 255,255,255
Else If menu<1 Then
menu=3
ElseIf menu>3 Then
menu=1
End If

If y1>336 Then
y1=296
Else If y1 < 296
y1=336
End If
Flip ; Flip it into view

Forever
End Function


Function game2()
Cls
Print "lala" ;hier könnte die zweite repeat-forever-schleife sein
Delay 1000
end
End Function

D2006

Administrator

BeitragMo, Apr 27, 2009 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.

Das ist jetzt schon der zweite Thread von dir, den ich aus dem 3D-Bereich verschieben. Der Blitz3D-Bereich ist für Probleme und Fragen, die konkret mit den 3D-Befehlen zu tun haben. Dein Problem hat damit aber gar nichts zu tun, sondern mit der Programmierung mit BlitzBasic allgemein, weswegen ich das jetzt dorthin verschiebe und ich dich bitte, zukünfigt sowas gleich unter "Allgemein" zu erstellen.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Metamorphose

BeitragMo, Apr 27, 2009 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry, werds mir merken
 

Matthias

BeitragMo, Apr 27, 2009 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde dir ja gerne Helfen, doch ich habe das problem nicht verstanden. Was willst du denn überhaupt erreichen??

Valnar

BeitragMo, Apr 27, 2009 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du das alles so machen willst, musst du das ganze anders angehen.

Ich mach es immer so ähnlich wie hier, schau es dir mal durch und versuch es zu verstehen Wink

BlitzBasic: [AUSKLAPPEN]
Graphics 800, 600, 32, 2
SetBuffer BackBuffer()
Global y1
y1=296
Global nextfunction$ = "startgame"


Repeat
Select nextfunction$
Case "startgame"
startgame()
Case "game2"
game2()
Default
RuntimeError "Fehler"
End Select
Forever




Function startgame()
menu=1

Repeat ; Wiederhole solange...
Cls
Text 400,12,"hallo", True
Text 400,24,"ich wollt nur mal was sagen", True
Text 400,36,"Menu ist auf "+menu+" und y1 auf "+y1, True
Text 400, 300, "JA", True
Text 400, 320, "NEIN", True
Text 400, 340, "VIELLEICHT", True

If KeyHit(28) = 1 And menu=1 Then
nextfunction$ = "game2"
Exit
Else If KeyHit(1) = 1 Then
Exit
Else If KeyHit(208) = 1 Then
menu = menu + 1
y1=y1+20
Else If KeyHit(200) = 1 Then
menu = menu -1
y1=y1-20
End If


;Der Block kann hier stehen, da er ja immer derselbe ist!
Color 205,0,0
Rect 250, y1, 300, 20, 0
Color 255,255,255

If menu=1Then

Else If menu=2 Then

Else If menu=3 Then

Else If menu<1 Then
menu=3
ElseIf menu>3 Then
menu=1
End If

If y1>336 Then
y1=296
Else If y1 < 296
y1=336
End If
Flip ; Flip it into view

Forever
End Function


Function game2()
Cls
Print "lala" ;hier könnte die zweite repeat-forever-schleife sein
Delay 1000
End
End Function
 

Metamorphose

BeitragMo, Apr 27, 2009 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hey danke valnar!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group