Externer Quellcode

gerredtor

Mitglied
Hallo, ich habe eine frage und zwar möchte ich für ein spiel character script softcodet machen,
das heist das z.b. quest scripts in text oder anderen dateiformaten von java importiert wird und verarbeitet wird, z.b. als lua script in diesem z.b. lua script muss die möglichkeit bestehen java variablen und funktionen anzusprechen. wie mache ich das am besten und was verwende ich da am besten ? muss ja nicht lua sein, die idee ist mir gekommen da shader scripts ja auch extern sind.
 

InfectedBytes

Top Contributor
shader und lua Scripte sind schon zwei recht verschiedene Dinge, aber nun gut^^
Lua ist schon eine sehr gute Wahl, und es gibt auch einige gute Libraries für Java. Wenn ich mich recht entsinne, war LuaJ sehr gut. Alles was du aus deinem Lua Script heraus benutzen möchtest, musst du natürlich erst einmal von der Java Seite aus bereitstellen. Ganz simples Beispiel direkt von der LuaJ Seite:
Java:
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.*;

public class hyperbolic extends TwoArgFunction {
  public hyperbolic() {}
  public LuaValue call(LuaValue modname, LuaValue env) {
    LuaValue library = tableOf();
    library.set( "sinh", new sinh() );
    library.set( "cosh", new cosh() );
    env.set( "hyperbolic", library );
    return library;
  }

  static class sinh extends OneArgFunction {
    public LuaValue call(LuaValue x) {
      return LuaValue.valueOf(Math.sinh(x.checkdouble()));
    }
  }
  static class cosh extends OneArgFunction {
    public LuaValue call(LuaValue x) {
      return LuaValue.valueOf(Math.cosh(x.checkdouble()));
    }
  }
}

Damit kannst du dann aus Lua heraus folgendes machen:
Code:
require 'hyperbolic'

print('hyperbolic', hyperbolic)
print('hyperbolic.sinh', hyperbolic.sinh)
print('hyperbolic.cosh', hyperbolic.cosh)

print('sinh(0.5)', hyperbolic.sinh(0.5))
print('cosh(0.5)', hyperbolic.cosh(0.5))
 

gerredtor

Mitglied
ich sage ja nicht das LUA und Shader scripte gleich sind^^
ich meine nur das die externen shader scripts mich dazu angeheitert haben andere sachen auch extern zu machen, das wäre natürlich eine lösung aber wenn es etwas einfacheres als LUA gibt dann gerne, habe auch schon nach einer javascript api gesucht wenn sowas sinn macht
 

RalleYTN

Bekanntes Mitglied
Du kannst JavaScript seit Java 8 ziemlich leicht evaluieren.
Dazu musst du dir nur mal das javax.script package angucken.

Beispielcode zum Evaluieren von JavaScript
Java:
ScriptEngineManager manager = new ScriptEngineManager();  // <- davon nur einen im Code haben damit mehr als nur eine ScriptEngine auf die selben Variablen zugreifen können.
ScriptEngine engine = manager.getEngineByName("js");
Object returnValue = engine.eval(new FileReader(new File("myScript.js")));

Wenn du nur einen ScriptEngineManager hast kannst du mit unterschiedlichen Scripts auf die Variablen der davor ausgeführten Scripts zugreifen. ungefähr wie ein Browser wenn man mit <script src="myScript.js"></script> tag in einem HTML Dokument arbeitet.

Lies dich zu dem Thema schlau: http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/
*DU HAST KEINEN ZUGRIFF AUF STANDARD JAVASCRIPT FUNKTIONEN!!!* alert gibt es beispielsweise nicht. console.log und so gibt es ebenfalls nicht. für Ausgaben wird print verwendet.

Vorteil dieser Methode ist, dass sie sehr leicht ist und keine Zusatzbibliotheken braucht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Zugangsdaten externer Systeme sicher speichern Allgemeine Java-Themen 8
O Start externer Programme Allgemeine Java-Themen 1
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
D Bilder aus externer .jar laden Allgemeine Java-Themen 3
F Bild aus externer Quelle laden und Skalieren? Allgemeine Java-Themen 11
T Klasse in externer JAR mit ObjectInputStream Allgemeine Java-Themen 14
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
C Speicherlecks in externer Library Allgemeine Java-Themen 2
S Debuggen externer libs Allgemeine Java-Themen 2
E Klasse aus externer Class in JAR laden Allgemeine Java-Themen 6
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
C Quellcode-Übersetzung englisch zu deutsch Allgemeine Java-Themen 9
D Suche Quellcode! Allgemeine Java-Themen 8
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
G Quellcode wiederherstellen Allgemeine Java-Themen 28
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
T Android Webview Webpage Quellcode to string Allgemeine Java-Themen 0
B Quellcode für Zwischenprüfung Allgemeine Java-Themen 4
M Aus Javaprogramm .NET Quellcode kompileren Allgemeine Java-Themen 2
J XML Dokument Zeilenumbruch in den Quellcode einfügen Allgemeine Java-Themen 5
T ExceptionHandling mit bescheidenem Quellcode Allgemeine Java-Themen 14
I Methoden Quellcode auslesen (Refelction o.ä.) Allgemeine Java-Themen 5
H Zeilenumbruch in Quellcode Allgemeine Java-Themen 4
G Eingegeben Formeln in Quellcode einbetten?! Allgemeine Java-Themen 4
E Compiler-Fehler wie muss ich die entstandene Quellcode kompilieren?? Allgemeine Java-Themen 2
T Api in Quellcode laden Allgemeine Java-Themen 8
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
S jsr in Quellcode Allgemeine Java-Themen 4
M R250 Quellcode Allgemeine Java-Themen 2
J Quellcode aus .jar auslesen? Allgemeine Java-Themen 3
M JLapack Quellcode beifügen? Allgemeine Java-Themen 4
P Probleme mit wikipedia quellcode zur binären Suche Allgemeine Java-Themen 6
X Quellcode von nativen Funktionen Allgemeine Java-Themen 2
D Übersetzen von Quellcode Allgemeine Java-Themen 11
N Java Quellcode zu Syntaxbaum Allgemeine Java-Themen 3
M Wie in Eclipse Quellcode incl. Zeilennummern kopieren? Allgemeine Java-Themen 6
G SourceForge - Quellcode Allgemeine Java-Themen 15
V Quellcode auf "Güte" testen? Allgemeine Java-Themen 5
C Java Quellcode parsen Allgemeine Java-Themen 8
M Quellcode DriverManager Allgemeine Java-Themen 2
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
G Problem mit Quellcode, Eingabe wird nicht angezeigt --HELP-- Allgemeine Java-Themen 2
T Problem mit Quellcode Allgemeine Java-Themen 2
D Was haltet ihr von meinem Quellcode - JConsole? Allgemeine Java-Themen 2
Lazybone Java Quellcode sichern Allgemeine Java-Themen 9
P Fehler im Quellcode Allgemeine Java-Themen 8
J Viel Text mit " im Quellcode abspeichern Allgemeine Java-Themen 7
R Copyright-Notiz am Anfang jeder Quellcode-Datei? Allgemeine Java-Themen 5
R Problem mit Quellcode Allgemeine Java-Themen 2
M Events im Quellcode auslösen Allgemeine Java-Themen 4
J Java Quellcode Aufbereitung für Dokumentation Allgemeine Java-Themen 11
padde479 Organisation von Quellcode Allgemeine Java-Themen 6
F Quellcode von Java ansehen Allgemeine Java-Themen 4
S In einem HTML Quellcode gewünschten Abschnitt in Datei Save Allgemeine Java-Themen 9
R Java Quellcode zu exe Datei unsw. Allgemeine Java-Themen 5
G Quellcode inkludieren Allgemeine Java-Themen 3
J Quellcode aus JAVA Programmen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben