Datei Verteilung
Übersicht

biosoBetreff: Datei Verteilung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute,
wollte mal fragen wie man den Quelltext auf mehrer Dateien aufteilen kann, z.b. : wenn ich ein Hauptmenü programmiert habe und möchte das, wenn man "Spiel start" klickt das dann z.b. die Datei "Hauptspiel.bb" startet. Ich habe es schon mit "Include" versucht hat aber nicht funktioniert da kam eine Fehlermeldung mit den Funktionen und so hab dan mal probiert die Varibeln Global zu setzten hat hat aber auch nicht funktioniert. Was kann man da am besten machen?. Von Steffen, (14) Homepage: www.s.k.home.de.vu |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geht nur noch über execfile
Aber da kannste dann nicht direckt Werte übergeben sonder must diese zwischenspeichern in einer datei deswegen rate ich da von ab, bei kleineren Sachen! Code: [AUSKLAPPEN] Datei$="C:\Programme\Hauptspiel.exe"
EXECFILE Datei$ WAITKEY() include ist da schon die richtige Wahl, darfs dann aber die einzelnen variablen nicht für verschiedene Sachen benutzten, also muste dann evt. umbenennen von einem IncludeTeil damit es funzt |
||
[BB2D | BB3D | BB+]
|
bioso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kannst du mir das noch einmal erklären, das mit dem Include wie das funktionieren soll.
Von Steffen |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit include wird aus dem aufgeteilten Programmcode wieder 1 Ganzer gemacht bevor dieser dann compiliert wird
BeispielCode: [AUSKLAPPEN] ; Hautprg.bb Graphics 800,600,16,2 SetBuffer BackBuffer() Global ESC = 1 repeat ;macht irgendwas until Keyhit(ESC) weil mir das da schon zu gross ist teil ich das mal auf mit include damit es übersichlicher wird Code: [AUSKLAPPEN] ; Hautprg.bb
include ("Instalierung.bb") repeat ;macht irgendwas until Keyhit(ESC) hier jetz die include dateiCode: [AUSKLAPPEN] ;Instalierung.bb
Graphics 800,600,16,2 SetBuffer BackBuffer() Global ESC = 1 demnach wird anstelle des INclude befehls diese datei eingesetzt, mehr ist das nicht, wird also vom compiller wie eine große Datei behandelt |
||
[BB2D | BB3D | BB+]
|
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Include wird logischerweise nicht zur Laufzeit sondern beim Kompilieren eingebaut. Und das führt dazu, dass eine Datei auch genau EINMAL eingebaut wird.
Das ist anders als in PHP oder so. Wenn dus also umbedingt so machen willst, dann mach es doch so: Mach für jeden Teil ne Include und hau den Code davon in eine Function. Beispiel: GameInclude.bb Code: [AUSKLAPPEN] Function GameInclude() ;Dein ganzer Code End Function Im Hauptprogramm includest du jetzt alle Dateien am Anfang und fügst an geigneter Stelle nur die eine Funktion ein. walski |
||
buh! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube Include ist hier falsch verstanden worden. An der Stelle wo Du dein Include hinstetzt wird einfach der Code aus der anderen Datei hineingequetscht. Blödsinn wär auch 2 Exen zu machen da eine Exe min. ~700 KB oder so hat und somit bei zwei schon satte 1.4 MB nur für die Exen zusammenkäme. Mach einfach so:
Code: [AUSKLAPPEN] .menu
Repeat ; Hauptschleife Menü ; lustiger Code Until spiel_starten Repeat ; Hauptschleife Game ; sehr lustiger Code Until raus_aus_game Goto menu So oder so ähnlich... Edit: Liegt der Hubsi tot im Keller, war der walski wieder schneller ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
bioso |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wie ist das jetzt mit den Variablen muss man die dann alle Global setzten?
z.b. ; Hauptprogramm.bb global variable = 1 print "" variable include ("Programm.bb") ; Programm.bb global Variable2 = 2 print "" Variable2 oder muss man da nichts machen? Von Steffen |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist nicht nötig für ne Include die Variablen Global zu machen.
Der Text der in der Include Datei steht wird einfach ganz genau so übernommen in dein Hauptprogramm. Code: [AUSKLAPPEN] ;Haupt.bb a = 1 b = 2 c = 3 ist das selbe wie Code: [AUSKLAPPEN] ;Haupt.bb a = 1 Include "inc.bb" c = 3 Code: [AUSKLAPPEN] ;inc.bb b = 2 Deshalb darf eine Variable auch nur einmal vorkommen. Die b variable in der Include Datei wird somit auch in der Hauptdatei gesetzt. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alle Variablen sind automatisch Local und können ausserhab von Functionen benutzt werden, dazu gehören auch Unterprogramme Gosub ... return
Also, sollange wie keine Functionen genutzt werden, sind alle Variablen überall nutzbar innnerhalb von functionen sind die benutzten Variablen auch local aber nur in der function, beim erneuten aufruf der Function sind die variablen alle wieder resetet und sind wieder auf null. Um das zu verhindern muß dann die Variable im Hauptteil auf Global gesetzt werden damit der Wert bleibt wenn Variablen in beiden Programmteilen genutzt werden sollen, dann sind diese auch als Global zu deklarieren! Arrays () sind aber immer global! wenns geht so wenig wie möglich global machen und besser die werte mit dem Functionaufruf übergeben und zurück liefern Code: [AUSKLAPPEN] ;Global b
;Global Zaehler For Zaehler = 1 To 100 X=X+1 Werteberechnnen() ;hier mal was rechnen Next Print X ; sollte ja 100 sein Print b ; WaitMouse Function Werteberechnnen() For Zaehler = 1 To 2 b=b-1 Next End Function blödes Beispiel, aber wenn jetzt der Zaehler global ist dann gibt es eine Endlosschleife kannst ja mal testen mit dem global |
||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group