Kleine Healthbar über Objekt zeichnen

  • GM 7

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

  • Kleine Healthbar über Objekt zeichnen

    Hallo.

    Ich habe bei der SuFu wie immer nix gefunden was passt: Ich will über ein Objekt eine kleine Healthbar machen, also direkt drüber. Aber ich kriegs nicht hin. Kann mir einer helfen?



    THX im Vorraus!
  • draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder) Mit dieser Funktion kannst du eine Lebensanzeige (oder irgendeine andere Anzeige, die einen Wert angibt. z.B. den Schaden) zeichnen. Die Argumente x1, y1, x2 und y2 geben den gesamten Bereich der Anzeige an. amount gibt an, wieviel die Anzeige anzeigen soll (mus zwischen 0 und 100 liegen). backcol ist die Hintergrundfarbe der Anzeige. mincol und maxcol geben die Farben an, in denen die Anzeige gezeichnet wird, wenn amount 0 bzw. 100 ist. Wenn amount zwischen 0 und 100 ist werden die Farben ihren Anteilen entsprechend gemischt, folglich kann man sehr leicht eine Anzeige machen, die ihre Farbe von Grün nach Rot verändert. direction gibt an, in welche Richtung die Anzeige steigt (0 = von Links nach Rechts, 1 = von Rechts nach links, 2 = von Oben nach Unten, 3 = von Unten nach Oben). Schließlich gibt showback an ob der Hintergrund angezeigt werden soll und showborder, ob die Anzeige einen Schwarzen Rand haben sollen.
    Wenn du health benutz kannst du auch benutzen.

    Das kommt alles in Draw-Event, wenn du eins hast, wird das Sprite nicht mehr gedrawt.

    GML-Quellcode

    1. draw_sprite(sprite_index,image_index,x,y)

    Oder
    MfG Henrik1235
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Lösung in Drag&Drop:
    Du musst den D&D-Block "Draw Healthbar" verwenden (nachdem du eine healthbar erstellt hast). Bei den Argumenten spielst du ein bisschen y1 rum (sollte negativ sein) um die höhe einzustellen und wenn du ein Häkchen bei relative machst, wird die healthbar in relativer position (also immer gleich weit entfernt) vom Objekt gezeichnet.
    Spoiler anzeigen

    Aus der Hilfe:

    Set the health
    Game Maker hat auch ein eingebautes Gesundheits-System. Mit dieser Aktion kannst du die Gesundheit ändern. Ein Wert von 100 bedeutet volle Gesundheit und ein Wert von 0 keine Gesundheit. Du gibst einfach den neuen Wert der Gesundheit ein. Oft willst du einen Wert von der Gesundheit abziehen. In diesem Fall vergiss nicht die Relative Box zu aktivieren. Wenn die Gesundheit kleiner oder gleich 0 ist wird ein "out of health" Event erstellt.

    If health is a value
    Mit dieser Frage-Aktion kannst du prüfen ob die Anzahl der Leben einen gewissen Wert erreicht hat. Du gibst den Wert an, und ob die Anzahl der Leben gleich dem Wert, kleiner dem Wert oder grösser dem Wert sein soll.

    Draw the health bar

    Mit dieser Aktion kannst du die Gesundheit in Form eines Gesundheitsbalken anzeigen. Wenn die Gesundheit 100 ist, wird ein voller Balken gezeichnet. Du gibst die Position und die Größe der Gesundheitsbalken an, die Farbe des Balkens und den Hintergrund.


    Sag wenn noch was unklar ist :)

    edit:
    Antworten im Minutentakt :P
  • Hi. Erstmal danke für die Antworten! Ich habe das jetzt so gemacht wie ihr das meint, habe aber ein Problem: Ich muss ja Draw Sprite oder so machen dass da eine Sprite erscheint. Das klappt auch, aber meine Objekte ändern im Spiel jetzt nicht mehr den SPrite wie die es vorher gemacht haben...

    Edit:

    Ich weiß jetzt wie ich das hinkriege, aber ihr müsst mir helfen. In den folgenden 2 Codes werdet ihr Codeabschnitte finden, die das Sprite ändern. Kann einer die Codes so umschreiben, das das mit dem Spriteänder RELATIV ist? Ich weiß nicht wie....:

    CODE 1:

    if
    ((x>cursor.start_x && x<cursor.x) || (x<cursor.start_x && x>cursor.x))
    {

    auswahl_x=1;

    }

    else

    {

    auswahl_x=0;

    }

    if
    ((y>cursor.start_y && y<cursor.y) || (y<cursor.start_y && y>cursor.y))
    {

    auswahl_y=1;

    }

    else

    {

    auswahl_y=0;

    }

    if
    (auswahl_x==1 && auswahl_y==1)
    {

    sprite_index
    =Smilie135;
    }

    else

    {

    sprite_index
    =Smilie13;
    }


    Code 2:
    if (
    sprite_index==Smilie135){ziel_x=cursor.ziel_x;
    ziel_y=
    cursor.ziel_y;}


    // Zusammengeschoben von Ih³ - In Zukunft bitte keine Doppelposts mehr, wo es nicht unbedingt nötig ist.
  • Im prinzip reicht ein zusätzliches

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)

    im Draw-Event des jeweiligen Objekts.

    © 2008 by Teamgrill Productions
  • 1. Das fügst du in ein CREATE EVENT ein.

    GML-Quellcode

    1. {
    2. hpr = 100;
    3. hpr_max = 100;
    4. size = sprite_get_width(sprite_index);
    5. }


    2. Das fügst du in ein STEP EVENT ein

    GML-Quellcode

    1. {
    2. // Wenn die HP unter oder gleich 0 ist, zerstöre die Instance
    3. if (hpr <= 0)
    4. instance_destroy();
    5. }


    3. Das fügst du in ein DRAW EVENT ein

    GML-Quellcode

    1. {
    2. // Male das Sprite des Objektes
    3. draw_sprite(sprite_index,-1,x,y);
    4. // Setzte die Farbe auf grün wenn die HP über 50% ist
    5. // Setzte die Farbe auf gelb wenn die HP unter 50% ist
    6. // Setzte die Farbe auf rot wenn die HP unter 20% ist
    7. if (round(hpr/hpr_max*100) >= 0)
    8. draw_set_color(c_red);
    9. // Nun male die HP
    10. draw_rectangle(x-12,y-85,x+(size/100*(hpr/hpr_max*100)-8),y-80,false);
    11. // Setzte die Farbe auf schwarz
    12. draw_set_color(c_black);
    13. // Male Outline's eines Rechtecks (also den Rand)
    14. draw_rectangle(x-12,y-85,x+size-8,y-80,true);
    15. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von game.producers ()