Healthbar relativ auf Sprite beziehen (gelöst)

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

  • Healthbar relativ auf Sprite beziehen (gelöst)

    Ich glaub ich steh momentan ganz schön auf dem Schlauch - könnte auch an der Uhrzeit liegen :P
    Die SuFu hat da auf Anhieb auch nichts ausgespuckt, obwohl ich meine, die Frage schonmal gelesen zu haben. hm...
    Nunja, folgendes ist mein Problem:

    Ich zeichne mittels draw_rectangle eine Healthbar, die sich relativ auf die Energie des betroffenen Objektes bezieht - mit anderen Worten: Sie rechnet mit Prozent, nicht mit Punkten. Weiterhin soll die Leiste nicht über die sprite_width des zugehörigen Objektes herausragen, sondern 100% Leben sollen auch 100% der Sprite_width einnehmen, nicht mehr und auch nicht weniger.

    Nur: Wie krieg ich das hin? Ich hab keine Ahnung, weder von der Prozentberechnung (ja, ich weiß, Siebtklässlerstoff, ich schäme mich dafür), noch von der relativen Länge der Healthbar zur sprite_width. Ich entschuldige mich, falls ich diese Frage in der SuFu übersehen habe, aber kann mir bitte trotzdem jemand helfen?

    :| Oh je, oh je...

    -Ih³

    EDIT: Thema umbenannt, alter Titel war doch etwas missverständlich

    EDIT2: (gelöst) vergessen :P

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Irrenhaus3 ()

  • naja das hatten wir wahrlich vor kurzem ich darf dich an diesen link weiterleiten: "Healthbar" begrenzen

    ansonsten musst du dir einfach überlegen dass die gesamtleben 100% sind --> wenn du jetzt eine 50 pixel lagen healthbar haben willst ist sind die gesamtleben 50 pixel --> derzeitige leben/gesamtleben *länge der healthbar = das was du brauchst :)


    mfg johannski
  • YES!!
    Das war die Rettung. Ich wusste doch, die Frage kam mir bekannt vor :D

    Zusammenfassend die Formel, die ich im Endeffekt verwendet habe (Sprite-Origin auf der Mitte):

    GML-Quellcode

    1. draw_rectangle(x-sprite_width/2,y-16,x-sprite_width/2+(energy/maxenergy*sprite_width),y-20,false)


    Das kreiert eine 4 Pixel hohe Healthbar über dem Objekt, die nicht breiter wird als das Sprite selbst. (Das false im Outline-Argument ist nur fürs optische, für eine massive Healthbar setzt es einfach auf true)

    *gelöst*
  • Benutzer online 1

    1 Besucher