Include Problem [noch nicht gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: Include Problem [noch nicht gelöst]

BeitragMo, Okt 15, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich will in ein Spiel ein Menü einbinden. Das Menü soll logischerweise zuerst gestartet werden. Vom Menü kommt man über einen Klick ins Spiel. Wenn man mit dem Spiel fertig ist oder Esc drückt gehts wieder ins Menü.
Wie würdet ihr das lösen??? habs schon mit include versucht, is aber nix sinnvolles herausgekommen.
Ich könnte natürlich auf Execfile benützen..............weis aber nicht ob das sinnvoll ist (Ausserdem brauchts dann mehr Speicherplatz).

Das Menü und das Spiel sind einzelne Dateien und ich will sie aus Übersichtlichkeitsgründen nicht zu einer vereinen.
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
  • Zuletzt bearbeitet von mabox am Mi, Okt 17, 2007 17:24, insgesamt 2-mal bearbeitet

The_Nici

BeitragMo, Okt 15, 2007 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo das Menü hinkommen sollte machst du das include rein ôo

mabox

BeitragMo, Okt 15, 2007 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie komm ich dann wieder Spiel???
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

The_Nici

BeitragMo, Okt 15, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
In der Menü-Datei machst du halt eine chleife, die dann irgendwann beendet wird, ohne End.
Ok?

BladeRunner

Moderator

BeitragMo, Okt 15, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein kurzes Beispiel wie es aussehen könnte:
Code: [AUSKLAPPEN]

Global Gamestate = 0
repeat


    select Gamestate
         case 1
             include "Game.bb"
         case 2
             include "options.bb"
        default
             include "menu.bb" ;hier wird ausgewählt und in der Variablen Gamestate gespeichert
   end select

until Gamestate = -1


Deine Includes beinhalten idealerweise Functionen in denen alles gekapselt laufen kann.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

mabox

BeitragMo, Okt 15, 2007 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx ich denke so bekomm ich es hin!
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

mabox

BeitragDi, Okt 16, 2007 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry wegen Doppelpost aber ich bekomm es dochnicht hin.
hab jetzt mal nen kleinen Test gemacht aber der funktioniert garnicht richtig. Wenn ich das starte kommt "Image does not exist" obwohl das Bild existiert.

Code: [AUSKLAPPEN]
;Start
Include "Variablen und Funktionen.bb"

Global Gamestate = 0
Repeat
   
    Select Gamestate
      Case 1
         Include "Spiel.bb"
         If KeyHit(1) =1 Then Gamestate = 0
        Default
         Include "Menü.bb"
         If KeyHit(57)=1 Then Gamestate = 1
   End Select
   
Until Gamestate = -1


Code: [AUSKLAPPEN]
;Variablen und Funktionen
Global image_Spiel = LoadImage("Spiel.jpg")
Global image_Menue = LoadImage("menü.jpg")

Global fpsrate,loops, fpstime

Function fps()
   loops = loops+1
   If MilliSecs() - fpstime > 1000 Then
      fpsrate = loops
      loops = 0
      fpstime = MilliSecs()
   End If
   Return fpsrate
   
End Function


Code: [AUSKLAPPEN]
;Spiel
Graphics 640,480,16,2
Include "Variablen und Funktionen.bb"
SetBuffer BackBuffer()
DrawImage image_Spiel,0,0
While Not KeyDown(1)
   Color 255,255,255
   Text 10, 10, fps()
   
   Flip
   Cls
Wend



Code: [AUSKLAPPEN]
;Menü
Graphics 640,480,32,2
Include "Variablen und Funktionen.bb"
SetBuffer BackBuffer()
DrawImage image_Menue,0,0
Flip



und was bringt die -1???Code: [AUSKLAPPEN]
Until Gamestate = -1

ToeB

BeitragDi, Okt 16, 2007 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich machs imma so :

Code: [AUSKLAPPEN]
Global make = 0  ; Schleifen-Variable

Repeat
  If make = 0 then ;Wenn make = 0 then soll der das menü zeichnen
    makeHaubtmenue()
    If KeyHit(2) then make = 1  ; Zweiter menüpunkt
    If KeyHit(3) then make = 2  ; Spiel
    If KeyHit(1) then End
  EndIf
  If make = 1 then 
    makeOption()
    If KeyHit(1) then make = 0
  EndIf
  If make = 2
    makeGame()
    if KeyHit(1) then  make = 0
  EndIf
Flip
Cls
Until KeyHit(1)
End


Dann ist das nämlich alles in einer schleife und muss nich Kompliziert Includet werden...


mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

BladeRunner

Moderator

BeitragDi, Okt 16, 2007 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Die -1 war als Auswahl für Ende vorgesehen- wenn Gamestate diesen Wert annimmt wird das Spiel beendet.
Du kannst also im Menu oder im Game auf escape testen und dann Gamestate auf - 1 setzen und ins Hauptmenu returnen.
Dein Bild existiert nicht weil Du in spiel.bb graphics benutzt. Bei jedem Aufruf von Graphics muss man alle Bilder etc. neu laden. Den Graphicmodus für das Spiel solltest Du also auch im Hauptprogramm stehen haben, bevor verzweigt wird. Hier kannst Du ja einen gesonderten Gamestate anlegen, bei dem der Graphicmodus auf die gewünschte Aufklösung gesetzt und dann alle Bilder geladen werden.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

mabox

BeitragDi, Okt 16, 2007 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok jetzt gehts schon besser. Nur die Frames sieht man nicht.

derCode: [AUSKLAPPEN]
;Start

Graphics 640,480,32,2
Include "Variablen und Funktionen.bb"


Global Gamestate = 0
Repeat
   
    Select Gamestate
      Case 1
         Include "Spiel.bb"
         If KeyHit(57) =1 Then Gamestate = 0
        Default
         Include "Menü.bb"
         If KeyHit(57) = 1 Then Gamestate = 1
   End Select
   
Until Gamestate = -1



Code: [AUSKLAPPEN]
;Variablen und Funktionen
Global image_Spiel = LoadImage("spiel.jpg")
Global image_Menue = LoadImage("menü.bmp")
Global fpsrate,loops, fpstime

Function fps()
   loops = loops+1
   If MilliSecs() - fpstime > 1000 Then
      fpsrate = loops
      loops = 0
      fpstime = MilliSecs()
   End If
   Return fpsrate
   
End Function



Code: [AUSKLAPPEN]
;Menü
SetBuffer BackBuffer()
DrawImage image_Menue,0,0
Flip


Code: [AUSKLAPPEN]
;Spiel
SetBuffer BackBuffer()

While Not KeyDown(57)
   Color 255,255,255
   DrawImage image_Spiel,0,0
   Text 10, 10, fps()
   
   Flip
   Cls
   
Wend
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Mr.Keks

BeitragDi, Okt 16, 2007 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde include nicht in den code selbst reinschreiben, sondern alle includes am anfang der hauptdatei hinpacken. dann im code nur noch funktionen aus den includes aufrufen.
MrKeks.net

mabox

BeitragDi, Okt 16, 2007 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
und Warum?

(PS: die Frames sieht man immer noch nicht)
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Dottakopf

BeitragMi, Okt 17, 2007 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
weil man das so macht und es übersichtlicher ist.

du ladest doch in der main-loop auch nicht jedesmal die grafiken neu.
 

Dreamora

BeitragMi, Okt 17, 2007 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
mabox hat Folgendes geschrieben:
und Warum?

(PS: die Frames sieht man immer noch nicht)


Weil man nicht Includes für Funktionen macht sondern den Inhalt der Includes "Thema basierend" macht.

zb ist eine Include das Menü system, ein anderes wäre particle system etc etc


Es macht keinen sinn einfach das zeug wild zu streuen, das sorgt nur dafür dass man es kaum noch gescheit zusammen setzen kann geschweige denn später versteht wie der code fluss läuft und wo was ist.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

mabox

BeitragMi, Okt 17, 2007 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke habs gecheckt!
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group