Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - schwarz

Seiten: [1]
1
Newbies / Re: Funktionspointer oder ähnliches
« am: 29. Mai 2017, 21:26:04 »
Tjoa, AGS-Script ist leider keine wirklich schöne Sprache. Wenn man richtige Programmiersprachen gewöhnt ist, wundert man sich da schon an jeder Ecke. Immerhin sind mit Version 3.4. auch mal For-Schleifen und Switch-Case-Abfragen möglich.  ;D
Dann ist es ja gut, dass ich mich jetzt erst einarbeite. Habe mich schon etwas über die vielen if-Abfragen gewundert.
Könnt ihr mir als eher Java-affinen Entwickler einmal kurz erläutern, was genau ein Funktionspointer ist? Für mich klingt es so als würdet ihr das implementieren wollen, was man in Java ein Interface nennt.
Ich weiß jetzt nicht genau, was ein Interface ist, aber wenn es wie bei C# ist, dann ist es vermutlich fast das selbe. Bei einem Funktionspointer kann ich von außen einfach sagen, rufe die Funktion an dieser Adresse auf. Bis auf den Aufbau des Funktionsaufruf (z.B. int Test(bool Check, int Number)) kann die Funktion alles mögliche enthalten. D.h. in einem Raum wird z.B. das Licht eingeschaltet, in einem anderen das Fenster geöffnet. Von außen (Global Script) ist nicht ersichtlich, was passiert, also eine saubere Kapselung. Bin mir jetzt aber nicht mehr sicher, ob das wirklich weiter helfen würde, da bei einem Spiel doch relativ viel raumunabhängig ist.

Ist eigentlich das Türenskript in Bernard Starterpack AGS 3.21 das aktuelle? Bin da gerade etwas am rumbasteln und möchte auf der aktuellen Basis aufbauen.

2
Newbies / Re: Funktionspointer oder ähnliches
« am: 24. Mai 2017, 23:02:43 »
Schade eigentlich. Geht sowas, wie ich schon geschrieben habe?

3
Newbies / Funktionspointer oder ähnliches
« am: 21. Mai 2017, 01:03:49 »
Hallo,

sehe ich das richtig, dass es bei AGS keine Funktionspointer gibt?
Kann man so etwas ähnliches machen? Ungefähr so:
//myScript.ash:
struct RoomStruct {
  int RoomNumber;
  import function RoomFunction(int Test);
};

//room1.asc
RoomStruct myRoomStruct[2];
int RoomStruct::RoomFunction(int Test) {
  return (Test * 2);
};

//room2.asc
RoomStruct myRoomStruct[3];
int RoomStruct::RoomFunction(int Test) {
  return (Test / 5);
};
Damit könnte jeder Raum seine eigene Funktion haben und trotzdem wäre sie im Struct schön angeordnet.
Danke schon mal für die Hilfe, und vor allem auch für die vielen Episoden, macht immer wieder Spaß mmm zu spielen.

Seiten: [1]