BB-Datei mit Execfile ausführen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Chrissa

Betreff: BB-Datei mit Execfile ausführen

BeitragMo, Feb 01, 2010 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leute!

Ich möchte eine .bb Datei mit Execfile ausführen. Also nicht im Compiler öffnen, sondern gleich ausführen lassen. Geht das? Wenn ja wie?

Danke schon einmal im Voraus

MfG Chrissa

PS: Die Suchfunktion hat mir nicht weiterhelfen können... Falls ich etwas übersehen haben sollte, dann entschuldigt bitte. Entsprechende Links würde ich dann dankend annehmen Wink

D2006

Administrator

BeitragMo, Feb 01, 2010 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht so nicht. Du kannst den Compiler aufrufen und als Parameter die BB-Datei angeben. Allerdings geht das nur bei dir lokal, wenn du darfst natürlich den Compiler nicht anderen mitliefern.

Die richtigen Parameter entnimmst du der Hilfe. Rechts in der Sidebar auf "Weiteres" klicken.
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

Chrissa

BeitragMo, Feb 01, 2010 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
heißt so viel, dass ich die auszuführende Datei ebenfalls compilen muss, um sie auf jedem rechner ausführen zu können?

NightPhoenix

BeitragMo, Feb 01, 2010 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja natürlich. Anders geht's nicht, außer der Endanwender besitzt auch den Blitz3D Compiler (siehe D2006s Beitrag), wovon man nicht ausgehen kann.
Hol dir die Vollversion und compiliere die .bb zu .exe

Eingeproggt

BeitragMo, Feb 01, 2010 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
An sich vollkommen richtig was Dee und Nightphoenix sagen... aber bei solchen Fragen muss man auch immer n bisserl weiter nachfragen.
Chrissa... Kann es sein dass du einfach nur Include suchst?
Falls nicht - sorry.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Xeres

Moderator

BeitragMo, Feb 01, 2010 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
...und um Level zu laden (und speichern) verwendet man sein eigenes Dateiformat Wink
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Chrissa

BeitragMo, Feb 01, 2010 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm um Level gehts mir im Moment noch nicht Wink Ich möchte nur mein Hauptmenü unabhängig von der Spiel.exe lassen. Die Grafikeinstellungen usw. werde ich dann in einer txt speichern und von der Speil.exe laden lassen Wink


Wollte einfach mal was anderes machen, als eine komplette exe für alles.


@eingeproggt:
Wenn man was included, kann man da dann auf alle Funktionen der eingefügten Datei zugreifen oder wie meinst du das?

Nicdel

BeitragMo, Feb 01, 2010 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

@eingeproggt:
Wenn man was included, kann man da dann auf alle Funktionen der eingefügten Datei zugreifen oder wie meinst du das?


Genau dafür ist Include da Wink

Für dein Problem kannst du einfach 2 Exes machen und per ExecFile aufrufen.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

NightPhoenix

BeitragMo, Feb 01, 2010 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
In dem Fall würde ich sowas machen wie es die meisten MMORPGs haben: Einen Launcher mit Optionen, Update, etc. und wenn er fertig ist, bzw. man auf "Start" klickt öffnet sich das eigentliche Programm.

Xeres

Moderator

BeitragMo, Feb 01, 2010 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Launcher ist weder nötig noch Sinnvoll, sondern führt höchstens zu einem unterbrechenden Flackern. Wenn die selben Dateien doppelt verarbeitet werden müssen, verschließt sich mir der Sinn dahinter völlig. Zur öffentlichen Verbreitung würde ich davon abraten.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Chrissa

BeitragMo, Feb 01, 2010 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
habs jetzt mit include gemacht. Allerdings startet nun sofort die Game.bb und das Hauptmenü wird gar nicht erst gestartet... ich habe die datei ganz zu Beginn included und sie wird sofort ausgeführt. warum das?

Goodjee

BeitragMo, Feb 01, 2010 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
statt dem include setzt der compiler die ganze datei ein
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Pummelie

BeitragMo, Feb 01, 2010 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Include ist eigentlich ein Befhl, den man zur Übersicht in großen Codes verwendet.
Du kannst es dir so denken, das statt Include der Befehlsatz der eingefügten Datei für den Compiler da steht.
Ach ja, das trennen in exen funktioniert gut, diese können sich per UDP mit einerander "unterhalten", aber ein ist eine externe ese nicht wert Smile
It's done when it's done.
 

Cyderic

BeitragDi, Feb 02, 2010 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Wichtig ist, dass der Include Befehl beim Kompilieren gegen den Inhalt der Datei ausgetauscht wird. Wenn du also denkst "Toll, dann kann ich die Datei X per Include in den Code setzten, und verschick die BB Datei mit der Exe mit, und dann kann man ganz einfach Änderungen vor nehmen" ist das ein Trugschluss.

Bei Kompilieren werden die ganzen Include-Dateien in die Exe mit rein gepackt, andere BB Dateien werden von der Exe nicht verwendet.

Das wusste ich selbst lange Zeit nicht^^
Native ITler

skey-z

BeitragDi, Feb 02, 2010 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Als Tipp, arbeite mit einer Statusvariablen

Code: [AUSKLAPPEN]


graphics 800, 600
setbuffer backbuffer()

include "menu.bb" ;hier gibt es die Funktion Menu()
include "game.bb" ;hier gibt es die Funktion Game()

Const MENU=1
Const GAME=2
Const ENDE=0 ; hier das deutsche Wort, weil End ein BB-Befehl ist

global gState = MENU ;hier wird der aktuelle Status festgelegt (globaler Status)

While (gState <> ENDE)

   select gState
      case MENU
         Menu() ;hier rufen wir die Menu-Funktion aus der menu.bb auf
      case GAME
         Game() ;hier das Gleiche mit der Game-Funktion
   end select

Wend

end


In den verschiedenen Funktionen kannst du nun durch Veränderung der globalen Variablen den Status ändern, damit ein anderer Programmteil ausgeführt wird.

Noch ein kleines Beispiel für das Menü mit Ausgabe, dass kannst du dann auf die Datei 'game.bb' ausweiten

Code: [AUSKLAPPEN]


Function Menu()

   local tState = gState
   ;hier schaffen wir eine Vergleichsvariablen, falls gState sich irgendwann ändern sollte (temporärer Status)

   repeat

      if keyhit(1) then gState = ENDE ;Escape-Taste
      if keyhit(28) then gState = GAME ; Enter-Taste

      text 10, 10, "Ich bin das Menü"

      flip
      cls

   until (gState <> tState)
end function



Somit lässt sich der Code auch leichter in Teilbereiche aufteilen, da man normalerweise nur im Menü arbeitet oder im Spiel selber, seltenerweise jedoch in beiden gleich.

Es ist sehr viel komfortabler, da man zu jeder Zeit leicht neue Teilbereiche in wenigen Schritten einbauen kann, einfach eine neue Konstante einbauen, eine Include Zeile reinschreiben und den Select-Block um einen Fall erweitern.

Für ein genaueres Beispiel benutze mal die erweiterte Suchfunktion und dort nur nach dem Benutzer Suco-X ohne Titel in der Kategorie FAQ & Tutorials suchen, das Thema nennt sich "Aufbau und Strukturierung eines spiels"

Ich denke es wird dir und anderen weiter helfen.

mfg skey
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group