Hilfe zu Spiel in menü einbinden
Übersicht

CrishnackBetreff: Hilfe zu Spiel in menü einbinden |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Ich habe ein Spiel programmiert und auch ein menü, aber ich weiß nicht, wie man das Spiel in das Menü einbindet. (hab drei Schwierigkeitsstufen, die ich über das Menü aus auswählen will). Ich brauche die Antwort bitte heute noch Dies ist mein Menücode Code: [AUSKLAPPEN] Const xr=800, yr=600
Graphics xr, yr,16,2 HidePointer Global fontButton = LoadFont("Thorndale",30,1) Global mx, my SetBuffer BackBuffer() WaitMouse() For d = 0 To 25 Viewport 0,0,xr,yr Cls Viewport 0,yr/2-d,xr,d+d+1 drawButton("L",100,yr/2-15-3) drawButton("M",200,yr/2-15-3) drawButton("S",300,yr/2-15-3) drawButton("E",400,yr/2-15-3) Rect 0,yr/2-d,xr,1,1 Rect 0,yr/2+d,xr,1,1 Flip() Delay 1 Next Viewport 0,0,xr,yr loopTimer = CreateTimer(60) endLoop = False Repeat mx = MouseX() my = MouseY() Cls Rect 0,yr/2-25,xr,1,1 Rect 0,yr/2+25,xr,1,1 If drawButton("L",100,yr/2-15-3) Then Color 255,255,255 b1 = stretchText("eicht", 100, yr/2+22, b1, 7, 2) Else b1 = 0 End If If drawButton("M",200,yr/2-15-3) Then Color 255,255,255 b2 = stretchText("ittel", 200, yr/2+22, b2, 7, 2) Else b2 = 0 End If If drawButton("S",300,yr/2-15-3) Then Color 255,255,255 b3 = stretchText("chwer", 300, yr/2+22, b3, 7, 2) Else b3 = 0 End If If drawButton("E",400,yr/2-15-3) Then Color 255,255,255 b4 = stretchText("nde", 400, yr/2+22, b4, 7, 2) If MouseDown(1) Then endLoop = True Else b4 = 0 End If Color 255, 255, 255 Line mx - 3, my, mx + 3, my Line mx, my - 3, mx, my + 3 Flip(0) WaitTimer(loopTimer) Until KeyDown(1) Or endLoop End() Function drawButton(t$="Buttontext erwartet", xpos=1, ypos=1, clickable = True) SetFont fontButton bxsize = StringWidth(t$)+5 bysize = StringHeight(t$)+5 If Len(t$) = 1 Then If bxsize < bysize Then bxsize = bysize Else bysize = bxsize End If miR = mouseInRect(xpos, ypos, xpos + bxsize, ypos + bysize) Color 150,150,150 Rect xpos+1, ypos, bxsize, 1,1 Rect xpos+1, ypos+bysize+1, bxsize, 1,1 Rect xpos, ypos+1, 1, bysize,1 Rect xpos+bxsize+1, ypos+1, 1, bysize,1 Color 50,50,50 Rect xpos+1,ypos+1,bxsize,bysize,1 If miR And clickable Then Color 255, 255, 0 Else Color 255,255,255 Text xpos+(bxsize-StringWidth(t$))/2+1, ypos+(bysize-StringHeight(t$))/2+1, t$ Return miR End Function Function mouseInRect(x1, y1, x2, y2) If mx < x1 Or mx > x2 Then Return False If my < y1 Or my > y2 Then Return False Return True End Function Function stretchText(t$, x, y, p, s = 1, d = 1) If d = 1 Then one_char_size# = StringWidth("#") / 100.0 tl = Len(t$) For i = 1 To tl Text x + (i-1)*one_char_size# * p, y, Mid$(t$,i,1) Next Else If d = 2 Then one_char_size# = StringHeight(Left$(t$,1)) / 100.0 one_char_size_w# = StringWidth("#") tl = Len(t$) For i = 1 To tl Text x+one_char_size_w#+(one_char_size#-StringWidth(Mid$(t$,i,1)))/2, y + (i-1)*one_char_size# * p, Mid$(t$,i,1) Next End If p = p + s If p > 100 Then p = 100 Return p End Function Select menustate Case 1 ; Leicht Case 2 ; Mittel Case 3 ; Schwer End Select |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du sowas in seperate *.exe dateien machen willst bist du auf dem Holzweg,
machs lieber so (Pseudocode:) Code: [AUSKLAPPEN] ;Menü Repeat select schwierigkeit case leicht Spiel (1) case mittel Spiel (2) case schwer Spiel (3) end select Forever Und dann halt das eigentliche Spiel in die Funktion Spiel setzten, und die schwierigkeitsstufe über den Parameter einstellen. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Include![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach es so wie huzumu-kun beschreibt. Genaueres findest du in dem Programmablauf-Tutorial:
siehe Kapitel VI: "Paket aus mehreren Ansichten...l": https://www.blitzforum.de/foru...849#355849 Das geht genau darum, wie man aus zwei Programmen eines macht. Dein code ist auch schon ziemlich gut dafür vorbereitet. |
||
Crishnack |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das sagt dann aber immer dass die types nur im Hauptprogramm sein können.
wo kommen die dann hin? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
was jetzt passiert ist ganz typisch:
da du nicht alle variablen definiertt hast, läßt sich der bisherige Hauptteil nicht ohne weiteres in eine Funktion abspalten. Is' aber kein Grund auf Funktionen zu verzichten, sonder eher ein Grund, sich endlich mal bei jeder Variablen zu überlegen, ob sie GLOBAL oder LOCAL sein sollte. Schlamper-Tipp: (jetzt werden mich die anderen lynchen...) Definiere sie zunächst alle Global. Dann läuft das Programm wieder an. [EDIT #1] in deinem Menücode sind gar keine Types. Und den Spiel-Code hast du nicht reingestellt. Da die Veränderungen nur in den Teilen gemacht werden müssen, die bisher nicht Funktionen waren. (also meist aller Code von Graphics... bis Until....), genügt es nur diesen Teil reinzustellen. gleich noch mehr.... [EDIT #2] Die Types kommen an den Anfang des Gesamt-Programms, gerne sogar vor Graphics... Ebenso alle DIM-Arrays. Mein Tutorial zeigt dies übrigens Schritt-für-Schritt. |
||
Crishnack |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab jetzt die Leichte version in ne Funktion gebunden
Code: [AUSKLAPPEN] Function Leicht()
While Not KeyHit(1) Cls If KeyDown(57) ... EndIf ... Drawimage... ... For z=Each ... ... Next ... Flip End Function jetzt kommt da aber ne Fehlermeldung: End Function without Funktion |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
while![]() ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Crishnack |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für all die Tipps und so
Ich hab nur noch eine Frage: Was muss ich hier einfügen, um die Funktion Leicht zu öffnen: Code: [AUSKLAPPEN] Rect 0,yr/2-25,xr,1,1
Rect 0,yr/2+25,xr,1,1 If drawButton("L",100,yr/2-15-3) Then Color 255,255,255 b1 = stretchText("eicht", 100, yr/2+22, b1, 7, 2) hier hin Else b1 = 0 End If |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich denke mal, du meinst damit die Funktion, die das Spiel in der leichten Variante enthält, dann würde ein...
Leicht() an der von dir markierten Stelle reichen. |
||
Crishnack |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank für die Tipps, ihr habt mir wirklich sehr geholfen! | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group