Objekt info

  • Objekt info

    hallo,
    also ich programmiere gerade ein rps-spiel.
    wenn man auf ein objekt klickt, z.b. auf einen turm, dann soll in der statusleiste stehen, wie viel energy er noch hat.
    ich hab ein objekt namens status. bei dem draw event ist "draw the value of variable turm.energy".
    das problem ist, dass diese info nur bei einem bestimmten turm steht. also wenn man einen anderen turm anwählt, steht diese info nicht in der leiste. wie kann man das ändern??? :?:
  • vielleicht mit:

    GML-Quellcode

    1. if(instance_nearest(x,y,turm).besonderer_turm=true)
    2. {
    3. tu_dies_und_jenes
    4. }


    was bei dir auch schlecht ist, ist,
    dass immer die Energie vom als erses erstellten Turm angezeigt wird und nicht die des angeklickten

    besser wäre:

    GML-Quellcode

    1. draw_text(x,y,string(instance_nearest(x,y,turm).energy))

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von iTeM ()

  • Probier mal folgendes. du brauchst eine variable die die aktuell selektierte Einheit enthält:

    GML-Quellcode

    1. global.CurrentSelectedUnit = 0


    Wenn du jetzt eine einheit anklickst wird jene Variable auf die Einheit gesetzt:

    GML-Quellcode

    1. global.CurrentSelectedUnit = self;


    im Draw Event deiner Status anzeige dann einfach

    GML-Quellcode

    1. if(global.CurrentSelectedUnit)
    2. {
    3. draw_text(100,100,string(global.CurrentSelectedUnit.Energie));
    4. }


    Geht naturlich nur wenn alle selektierbaren Einheiten den Wert Energie besitzen. Das kannst du einfach machen indem du ein Parent Object hast, was das Create Event für alle anderen übernimmt oder einfach ein Script schreiben, das alle wichtigen Starwerte für alle Relevanten Objecte erzeugt einsetzen.
    ...