Python als Script aus einer anderen Datei aufrufen??

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
donCarlos

Hallo,
ich suche zur Zeit eine Lösung um die KI der NPCs in meinem nächsten Spiel zu realisieren. Es wäre ideal, wenn die Scripte dafür unkompiliert in externen Dateien gelagert werden und von dem Spiel dann ausgeführt werden. Die Befehle muss ich natürlich selber definieren.
Ein kleines Beispiel:

Code: Alles auswählen

if ( gegner.y < ich.y ) {
  Moveplayer.y = -1;
} else {
 Moveplayer.y = 1;
}
Der Benutzer soll also die KIs verändern können.

Ist das in Python machber???
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

donCarlos hat geschrieben:Es wäre ideal, wenn die Scripte dafür unkompiliert in externen Dateien gelagert werden und von dem Spiel dann ausgeführt werden. Die Befehle muss ich natürlich selber definieren.
Python Scripte sind praktisch immer unkompiliert.

Was willst du eigentlich genau? Den Python-Interpreter später in dein Spiel einbauen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
donCarlos

Ich kann das nicht besser erklären was ich will.
Beim fertigen Spiel sollen die Gegner von einem Script gesteuert werden, so das die KI also auch von jedermann verändert werden kann. Das Spiel liest das Script ein und führt es aus. und zwar nicht nur einmal sondern jeden Loop.
Die meisten Funktionen muss ich natürlich selbst definieren.
Also ich definiere mit C zB eine Funktion int GetItem(x,y,id); Wenn jetzt im Script GetItem (10,34,05); steht sollen die Agumente an die C-Funktion weitergegeben werden. Das ist im Prinzip ganz einfach und das ja alles in C programmieren. aber spätesten bie if-Schleifen und dem ganzen anderen Kram kann ich das nicht mehr selber machen. Daher such ich ne andere Lösung
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das geht mit Python schon, nur ist Python eigentlich für sowas nicht ausgelegt, für Embedding ist eher Lua gedacht. Allerdings habe ich mit sowas keine Erfahrung, vielleicht weiß hier noch jemand etwas mehr.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
PGrizzly
User
Beiträge: 1
Registriert: Dienstag 11. April 2006, 18:00

Hallo.

Ich würde dieses Thema in ähnlicher Form gerne noch einmal aufgreifen, möchte aber keinen neuen Thread aufmachen da meine Frage denke ich ganz gut hierher passt.

Ich suche nach einer Möglichkeit Python in Java einzubinden. Ich würde gerne Java Objekte während der Laufzeit durch externe Python-Skripte manipulieren.
Ein kleines Beispiel an dem mein Problem hoffentlich etwas deutlicher wird:

Java:

Code: Alles auswählen

class MyPoint
{
   public int x,y;
}

//...

class Main
{
   public static void main(String[] args)
   {
      MyPoint testPoint = new MyPoint();
      
      // Jython?
      Pythoninterpreter pi = new PythonInterpreter();
      pi.exec("script.py");
      // ...
   }
}
script.py

Code: Alles auswählen


def moveRight():
   for i in range(100):
      testPoint.x += 1   # Zugriff auf Variable des Java Programms

moveRight()
Ist sowas über Jython möglich bzw. weiss jemand vielleicht inzwischen eine andere Möglichkeit wie ich das realisieren könnte?
Antworten