eigene Datentypen - Datenstruktur à la record in pascal

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • eigene Datentypen - Datenstruktur à la record in pascal

    Moinmoin!

    Ich suche nach einer guten Möglichkeit im GM eigene Datentypen/-strukturen zu verwenden. Am besten wäre für mich eine dll oder so, mit der ich eine Art "record", wie sie in pascal genannt werden, erstellen kann. Zur Zeit hantiere ich mit strings und deren Operationen herum.

    Beispiel (in Wirklichkeit ist es noch ein bisschen komplexer):
    Ich habe 5 Variablen
    x_pos, y_pos // selbsterklärend
    x_speed, y_speed // selbsterklärend
    tag //zum speichern kleiner infos

    Diese Variablen möchte ich in ein "Variablen-Paket" zusammen fassen, da dieses Paket als ganzes oft übergeben, verwendet, ausgetauscht, usw. wird. Also hab ich die ganzen Variablen in einen string gepackt, wo jede einzelne Variable einen gewissen Platz in Anspruch nimmt:

    XXXYYYxxxyyyINF (Bsp.: "+15-07-01+11inf")

    Diesen string kann ich jetzt super als eine Variable verwenden. Die einzelnen "Sub-Variablen" müssen natürlich auch gelegentlich angepasst, übergeben werden. Dazu habe ich zahlreiche scripte (vollgestopft mit string-Operationen wie string_copy(), usw.) geschrieben. Da meines Wissens nach string-Operationen eher Performance lastig sind und diese "Variablen-Pakete" ziehmlich oft vorkommen werden, bin ich auf der Suche nach einer eleganteren und besseren Methode diese zu implementieren.

    Bitte um Infos bzw. Anregungen, wie ich das besser machen könnte!

    Gruß Klaus
    "Es gibt nie ein glückliches Ende, denn es endet nichts." - Schmendrick
  • Was spricht dagegen einfach Objekte zu nehmen?
    Klassische Datenstrukturen gibts im GM halt leider nicht und die Stringcodierung fliegt dir wahrscheinlich eh irgendwann um die Ohren, spätestens wenn du dein System erweitern willst.
    Ich denke mal wenn du die Objekte nach dem erstellen deaktivierst, sodass deren Step/Draw Event nicht ausgeführt wird, hast du auch keine Probleme mit der Performance.
    Zugriff auf die Variablen der Objekte hast du ja trotzdem und als Variablen rumreichen kannst du sie natürlich auch.