Frage zum Inventar

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

  • Frage zum Inventar

    Hallo ich wollte es noch ein weiteres mal versuchen.

    Also ich möchte das wenn ich auf ein Sprite / Objekt drücke, das es von RaumA ins Inventar kommt.
    Ich habe nämlich eine art Kiste wo ein Random Item raus kommt aber ich möchte gerne das es denn ins Inventar kommt wenn man es anklickt.
    Hoffe mir kann jemand helfen, wer nähere Information dazu brauch einfach schreiben :D
    Danke!
  • Nutzt du für dein Inventar und das Item separate Objekte? Außerdem gehe ich davon aus, dass du dich für eine ds_grid entschieden hast.

    in dem Fall könntest du im Mausklick Event des Items wie folgt vorgehen:

    GML-Quellcode

    1. if(instance_exists(oInventar){
    2. ds_grid_add(oInventar.gridname, oInventar.nextFreeSpot, 0, "Banane(n)"); //füge Bananen zum freien Platz hinzu
    3. ds_grid_add(oInventar.gridname, oInventar.nextFreeSpot, 1, 2); //Anzahl beträgt 2
    4. instance_destroy(); //entferne die Instanz aus der Kiste.
    5. }


    Im GM entsprechen Objekte dem, was in anderen Programmiersprachen als Klassen dargestellt wird. Instanzen im Game Maker sind somit ein Objekt in z.B. Java.
    d.h. ist ein Objekt im GM ein Bauplan für eine Instanz.

    mit dem Aufruf oInventar.gridname kannst du auf eine Variable von allen Instanzen des Objekts zugreifen (solltest du mehrere Instanzen des gleichen Objekts haben, sind auch alle anderen betroffen).

    nextFreeSpot ist eine Variable, die du natürlich gegen deinen freien Platz im Inventar tauschst. Idealerweise weiß das oInventar jederzeit, wo der nächste freie Platz liegt.
  • Vielen dank erstmal dafür!Ich habe kein direktes Inventar, eher ein raum es würde mir reichen wüsste ich wie ich per maus klick event das Item in das Inventar ( raum ) reinfüge.Denn wenn ich Create instance mache, fügt er das object ja ein, aber ich habe dass so gemacht, das wenn ich auf das Item drauf klicke, es sich im raum selber zerstört und mich automatisch ins Inventar weiterleitet, und da fügt er das ja nicht ein weil es ja sozusagen noch für den anderen raum zählt weil das event ja dort stattfindet...hoffe du konntest das nachvollziehen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mopsi ()

  • Du könntest das ganze mit globalen Variablen machen. Diese bleiben auch beim Raum Wechsel bestehen.

    Du definierst und benutzt diese mit einem einfachen global. vor.
    Wenn du keine "Lust" auf das global. davor hast kannst du auch einfach einmalig glovalvar Variable; machen und du musst es nicht mehr davor schreiben.

    Sorry für meine Schreibweise bin grad mit Handy on...
    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
  • Kannst du auch im Code ändern ich bin mir grad nicht sicher ob es mit der Variable persistent geht. Müsste aber eigentlich so gehen.
    persistent = true; //aktiviert
    persistent = false; //deaktiviert
    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