LUA für BMax

Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

bruZard

Betreff: LUA für BMax

BeitragFr, Jan 14, 2005 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Im bb.com Subforum "BlitzMax Module Tweaks" findet man unter "LUA for BlitzMax v1.0" etwas sehr interessantes: Ein Modul zum nutzen der Scriptsprache LUA mit BMax. Die Demos zeigen in Ansätzen was damit möglich ist.

Um selbst damit klar zu kommen habe ich mich auf die Suche nach Tutorials gemacht und kann zumindest eines schonmal empfehlen:

http://www.tutorials.de/showth...nextoldest

Viel Spass beim scripten Eurer Projekte Wink

P.S.: Bevor jemand fragt: Ich habe absichtlich nicht den Link zur richtigen Seite auf www.blitzbasic.com gepostet da Mark Sibly sicher einen Grund hat warum dieses Forum nur Käufer der Vollversion sehen Wink
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

OJay

BeitragFr, Jan 14, 2005 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
kannst den link ruhig posten...wenn du nicht eingeloggt bist auf bb.com, bekommst du bei unsichtbaren threads einen "internal error"...

bruZard

BeitragFr, Jan 14, 2005 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun gut denn, hier ist der Link:
http://www.blitzbasic.com/Comm...opic=41621

Ich habe auch schon damit herum probiert und es ist fantastisch ... einfach mal eben eine eigene Funktion durch ein Script aufrufen, Variablen ohne grössere Umstände austauschen etc. ... ein wirkliche Erleichterung.

Ihr könnt Euch hier eine Demo herunterladen. Sie liest zunächst das Script "game.lua", initialisiert damit ein paar Werte (u.a. den Gameordner) und holt sich dann das Script timemill.lua
In diesem starte ich meine BMax Funktion INitGfx() und hole mir danach noch die Werte aus dem BMax Code um sie in der Console auszugeben.

Bitte beachten: Code der LUA verwendet lässt sich _nicht_ im Debug Mode kompilieren ... das ist ganz schön assi ... mal gucken woran das liegt.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

bruZard

BeitragFr, Jan 14, 2005 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe meinen Testcode mal etwas erweitert -> http://www.makegame.de/downloads/lua_test.zip (Exe liegt bei).

Was man derzeit alles über LUA in der Exe "anrichten" kann steht in der lua_scripting.txt ... was man mit LUA alles machen kann ist auf www.lua.org nachzulesen.

Um mal "komplexe" Vorgänge in Scripts zu testen habe ich mal in timemill\script\console.lua eine For-Schleife gepackt welche die Funktion WriteToConsole nutzt um Text in die InGame Console zu schreiben (ja, ich mag Konsolen Smile )

Es wäre schön wenn mal jemand den Code unter Linux testen könnte, würde mich interessieren ob das läuft.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Suco-X

Betreff: ....

BeitragSa, Jan 15, 2005 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Bitte beachten: Code der LUA verwendet lässt sich _nicht_ im Debug Mode kompilieren ... das ist ganz schön assi ... mal gucken woran das liegt.


Vllt hast du einfach nur vergessen das Modul auch im Debug Modus zu erstellen. Müssen ja immer zwei Versionen erstellt werden.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
 

Gombolo

BeitragSa, Jan 15, 2005 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Vieleicht sollte man erwähnen das profesionelle Spiele auch LUA vewenden. Z.B. FarCry.
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/
 

furbolg

BeitragSa, Jan 15, 2005 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Dawn of War auch Very Happy

bruZard

BeitragSa, Jan 15, 2005 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Tatsache Suco-X ... das war der Fehler ... Very Happy
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

wunderkind

BeitragFr, Feb 11, 2005 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich frage mal ganz unbedarft: Gibt es eigentlich auch irgendwo eine Dokumentation zum Lua Modul?

bruZard

BeitragFr, Feb 11, 2005 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Gucke Dir die Samples an :: http://www.tomkatgames.com/pub...amples.zip
Die sind eigentlich selbsterklärend. Mehr Infos zu Lua selbst gibt es auf http://www.lua.org
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

wunderkind

BeitragFr, Feb 11, 2005 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Samples hatte ich noch nicht. Danke für den Tipp.

regaa

BeitragFr, Feb 11, 2005 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal ungegoogelt gefragt, wozu soll Lua gut sein für Blitzmax? Kann es etwas viel besser lösen als Blitzmax / was Blitzmax gar nicht kann?
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

bruZard

BeitragFr, Feb 11, 2005 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Och bitte, selbst ungegoogled sollte der Sinn von Scriptsprachen eingehen.

Aber nochmal für die billigen Plätze ganz hinten:
Mit LUA kannst Du ein Interface zu Deinem Programm erstellen über welches die Exe von aussen steuerbar ist.
Anstatt jeden Kram hardcoded zu realisieren kann man bspw. das Leveldesigns eines Games von aussen per Script erstellen.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

wunderkind

BeitragFr, Feb 11, 2005 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Lua ist eine Skriptsprache. Man kann z.B. ein Programm schreiben und dessen Verhalten lässt sich dann über ein Skript von außen steuern.

[edit] Mann, bin ich langsam! [/edit]

regaa

BeitragFr, Feb 11, 2005 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
bruZard hat Folgendes geschrieben:
Och bitte, selbst ungegoogled sollte der Sinn von Scriptsprachen eingehen.

Aber nochmal für die billigen Plätze ganz hinten:
Mit LUA kannst Du ein Interface zu Deinem Programm erstellen über welches die Exe von aussen steuerbar ist.
Anstatt jeden Kram hardcoded zu realisieren kann man bspw. das Leveldesigns eines Games von aussen per Script erstellen.


Nun, ich kann php und javascript, aber der Sinn deiner Aussage bleibt mir verborgen. Exen von aussen ansteuern hört sich sehr interessant an. Nen Beispiel, zumindest Pseudobeispiel?

Für mich heisst Scriptsprache immer keine kompilierten Sachen, alles interpretiert.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

bruZard

BeitragFr, Feb 11, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Beispiel Timemill-Editor:

Die Benutzeroberfläche ist nicht fest programmiert, sondern wird über ein LUA Script erstellt. Hierzu habe ich die Funktion "LoadGUI()" implementiert die erstmal nix weiter macht als eine Grafik zu laden. Dann kann man per LUA festlegen wo die Buttons liegen und wie gross sie sind.
Hier das aktuelle Script
Code: [AUSKLAPPEN]

dofile("editor_data.tms")

SetFont("fnt8x8.bmp",8,8)
LoadGUI("gui.bmp",0,GetScreenheight()-128)

DefineButton(GuiX()+128,GuiY()+71,80,9,NEW_MAP)      -- Neue Map
DefineButton(GuiX()+128,GuiY()+80,80,9,LOAD_MAP)   -- Map laden
DefineButton(GuiX()+128,GuiY()+89,80,9,SAVE_MAP)   -- Map sichern
DefineButton(GuiX()+724,GuiY()+2,18,18,LAST_TILE)   -- Tileliste zurück scrollen
DefineButton(GuiX()+742,GuiY()+2,18,18,NEXT_TILE)   -- Tileliste vor scrollen

DefineTilesetView(GuiX()+7,GuiY()+80,98,45)
DefineTilelistView(GuiX()+7,GuiY()+3,716,66)

CreateConsole(0,0,GetScreenwidth(),GetScreenheight()/2)

Dieses Script veranlasst die Exe dazu die Grafik zu laden, die Buttons zu definieren und ihnen Funktionen zuzuweisen. Im BMax Source steht nirgendwo wie die GUI aussehen soll.

War das jetzt verständlich?
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

regaa

BeitragFr, Feb 11, 2005 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, hört sich cool an. Werde mal demnächst nen Blick drauf werden. Danke für die geduldige Erklärung Laughing .
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

wunderkind

BeitragFr, Feb 11, 2005 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist jemand denn jemand so kuschelig per Du mit Lua? Mich interessiert, ob ich einem Skript eine bestimmte maximale Laufzeit mit auf den Weg geben kann. Damit z.B. nicht irgendein schlauer User Endlosschleifen produziert und damit das komplette Programm zum Stillstand kommt.

TheShadow

Moderator

BeitragFr, Feb 11, 2005 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab tatsächlich eine Verwendung für LUA... Ihr kennt mich doch - ich bin einer der alles universell machen möchte... Und zwar will ich ein Spiel coden - und man soll dort "Regeln" dazuladen können... Diese "Regeln" sollen aus Scripten bestehen... Das ist mit hardcodierten EXE's nicht möglich - oder eine Erweiterung per DLL viel zu umständlich... (obwohl... das könnte man zur Not noch machen)

Ich weiß nur nicht recht was der Unterschied zw. LUA und LUASCRIPT ist...
Ich muss mal versuchen da durchzusteigen...

Kann man da jetzt sowas wie

runscript "code.lua"

machen oder wie läuft das, bruz?
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Suco-X

Betreff: .......

BeitragFr, Feb 11, 2005 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau so läuft das ganze. Siehe die Samples. Einmal für Config und einmal für ausführbares Script sind Samples dabei.
Habs mir vor ein paar Wochen auch mal angetan. So wie es aussieht ist LUA nur Case Sensitive. Ohne Option um es abzuschalten. Das ich irgendwie keine ordentlichen Fehlermeldungen bekomme, erschwert den ganzen umgang da natürlich noch. Zumindestens wenn ich mal einen Buchstaben Vergesse oder ausversehen nicht Groß/Kleinschreibung geachtet habe.
Aber ehrlich gesagt habe ich mich da noch nicht weiter mit auseinandergesetzt. Auf jedenfall ist LUA Hot und macht Lust auf mehr.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group