E
Ich sage euch mal, was ich vor habe...
Wie man sieht, hat jeder Creep ein Memory-Objekt, in das bis zu 2MB an Daten gespeichert werden können. Ich weiß noch nicht genau, wie dieses funktioniert... Hier ist eine Beschreibung dazu https://docs.screeps.com/global-objects.html#Memory-object .
Wenn ich das richtig verstehe, können die "primitiven" Typen (int, float, string,...) an das Memory-Objekt gebunden werden, jedoch keine Klassen-Objekte...
Ich möchte gerne eine Superklasse MyAction haben und dann unterschiedliche, von dieser Klasse abgeleiteten Klassen, die alle eine runAction(creep) Funktion beinhalten. Ein konkretes, abgeleitetes Klassen-Objekt möchte ich an jeden Creep heften... Dafür möchte ich das konkrete Objekt mit JSON.stringify zu einem string serialisieren und hinterher mit parse wiederherstellen, um dann runAction aufrufen zu können. So weit der Plan...
a) Gibt es in JS Superklassen mit abstrakten Funktionen, die alle Kinderklassen implementieren müssen? Sprich:
let meinHaustier1 = new Fisch();
let meinHaustier2 = new Hamster();
let arr = [meinHaustier1, meinHaustier2];
console.log(arr[0].gibLaut(), arr[1].gibLaut());
Geht das?
b) Wie kann ich das Array arr mit den Objekten mit JSON.stringify serialisieren/schreiben/speichern?
Ich hab schon gelesen, dass JS nicht streng typisiert ist, das heißt, Arrays unterschiedlicher Typen sind möglich... aber das möchte ich ja eigentlich vermeiden.
Danke, wer bis hierhin gelesen hat.