struct Frage

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

  • struct Frage

    Hallo Leute,

    ich hätte mal wieder eine Frage...
    und zwar will ich wissen ob es in GML eine Art "struct" wie in C gibt??.

    www2.informatik.uni-halle.de/lehre/c/c_struct.html


    Ich bin mir nicht sicher, ob ich gerade auf dem Schlauch stehe und die Frage total banal ist.
    8|

    Danke Glim

    Enums habe ich entdeckt, aber die sind ja immer const.
  • Danke!
    Das ist Schade...
    Naja ich nutze jetzt das GameMaker-Object als struct xD

    Bsp:

    struct_mensch:

    create:

    GML-Quellcode

    1. ///struct Mensch
    2. //char-Array
    3. name = '';
    4. //unsigned short
    5. alter = 0;
    6. //char-Array
    7. nationalitaet = '';
    8. //bool 0-m 1-w
    9. geschlecht = 0;
    10. ////unsigned short
    11. groesse = 0;
    Alles anzeigen


    obj_TEST

    create:

    GML-Quellcode

    1. ///init
    2. paul = instance_create(0,0,struct_Mensch);
    3. paul.name = "paul";
    4. paul.alter = 22;
    5. paul.nationlitaet = "GER";
    6. paul.geschlecht = false;
    7. paul.groesse = 190;



    Ich habe jetzt noch gelesen, dass man die "strukturen"...also die GMObj deaktivieren sollte. Damit die FPS nicht flöten gehen..

    Der GM scheint ja trotzdem ziemlich viel Aufwand in ein leeres Objekt zu stecken.
  • Auf die Lösung, Objekte für so etwas zu benutzen, verzichte ich lieber, da wie du erwähnt hast, dass sehr Ressourcen aufwändig ist.
    Schon deswegen sollte Yoyogames mal endlich solch eine Funktion zur Verfügung stellen, weil viele, trotz der Performance, so eine Technik benutzen.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Halbwissen ahoi? ^^
    Ein struct ist das exakt gleiche wie eine Klasse in C++ oder Java - eine Sammlung von Daten (in Variablen und Konstanten) und evtl. auch Funktionen (in C durch Funktionspointer, in C++ und Co. als Memberfunktionen). In C sind sie noch etwas simpler als in höheren Sprachen, weil Objektorientiertes Programmieren da noch kein so großes Thema war, aber der Kern ist der gleiche. Und GM-Objekte sind halt auch nur ein Spezialfall davon. Wenn du ein obj_player erzeugst und ihm Variablen wie on_a_slope, max_jump_height und was nich alles zuschreibst, dann erzeugst du damit effektiv ein struct. Nur Memberfunktionen kann man nicht erzeugen, aber du kannst ja jederzeit eine Skript-Ressource generieren, die dein obj_player als Input erwartet und dann was damit macht. Also du hast auf jeden Fall alle Features von structs im GM repräsentiert - wenn auch weniger generisch und halt mehr auf Spiele fokussiert (z.B. dass jedes Objekt Eigenschaften wie hspeed und vspeed hat, auch wenns gar kein ingame-Objekt sein soll). Aber das liegt halt in der Natur der Sache.

    Edit: Kleine Demonstration - abgesehen vom Output ist das so via Objekt-Definition und instance_create auch im GM möglich.