Runde Lebensanzeige

  • GM 7
  • Runde Lebensanzeige

    hi, ich wollte eine Lebensanzeige erstellen die rund ist.
    Das heißt einen Lebensbalken der einmal im Kreis läuft statt von links nach rechts.
    Habs jetzt ne Weile probiert aus Beispielen zu lernen doch ich hab keins gefunden das einen ganzen Kreis bildet.

    Wenn jemand ne Idee oder ein Beispiel hat würde mir das sehr weiterhelfen
    Danke im Voraus
  • also das es eine runde lebensanzeige giebt wei ich nicht.
    Du könntest es aber so machen das du eine zeichnechst das geht ja leicht.
    zeichne einfach alle zustände und mach ne wariable damit der zustand angezeigt wird.
    zb so
    wenn du 10 leben hast ist sie voll aber wenn du 5 hast mach ne variable damit das sprite angezeigt wird wo halb voll ist.
    (oder halb leer ^^)
    :D am morgen ein Jiont und der Tag ist dein Freund :D
    A.C.A.B
    Hip Hop = dumm
  • Hmm, gibt so ne library mit der das geht (weiß nicht mehr welche).
    Wenn du dich mit surfaces auskennst, dann ist das mal so ein Denkanstoß, weiß nur nicht ob sich die Arbei lohnt. Zeichnest auf eine surface ein rechteck mit der breite des kreises, und der höhe des lebens, dann zeichnest du auf die surface noch ein Quadrat mit einem Loch, die surface muss dann außen transparent sein.
    (Hmm zum 2.: hab ich ganz schön kompliziert geschrieben :P )
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]

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

  • Sowas wie in Scooter?
    Wenn du damit klar kommst, hier hast du den Code:

    GML-Quellcode

    1. var i,xx,yy;
    2. draw_set_color(merge_color(c_white,c_red,hp/100));
    3. draw_primitive_begin(pr_linestrip);
    4. for (i=0;i<hp;i+=1) {
    5. xx = x+view_xview[0]+lengthdir_x(25,i*(360/maxhp));
    6. yy = y+view_yview[0]+lengthdir_y(25,i*(360/maxhp));
    7. draw_vertex(xx,yy);
    8. }
    9. for (i=hp-1;i>=0;i-=1) {
    10. xx = x+view_xview[0]+lengthdir_x(33,i*(360/maxhp));
    11. yy = y+view_yview[0]+lengthdir_y(33,i*(360/maxhp));
    12. draw_vertex(xx,yy);
    13. }
    14. xx = x+view_xview[0]+lengthdir_x(25,0);
    15. yy = y+view_yview[0]+lengthdir_y(25,0);
    16. draw_vertex(xx,yy);
    17. draw_primitive_end();
    Alles anzeigen
  • Na copyboy, Schleichwerbung, wa? ;D

    @derkuschel: Deine Lösung ist viel zu aufwändig, weil er einfach nur ne Runde anzeige machen will. Bei den typischen Zelda herzen wäre das schon sinnvoller, obwohl ich dafür auch eine andere Lösung hätte.

    Informiere dich mal ein über die draw_sprite_part Funktionen. Erstell die dein eigenes Sprite (ein Sprite, was die volle Energie darstellen soll) und benutze dann die draw_sprite_part(_ext) Funktion.

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

  • @critical: Genau das hab ich gemeint. (ich muss mich aber auch immer so kompliziert ausdrücken...und denken [surfaces in dem fall :headtouch:Wand"> ])

    Achja das soll nicht nur Spam sein, sondern ich stell auch ne frage:
    Hab das von Copyboy probiert, is mir auch ziemlich klar wies funkt (außer das ich gedacht habe, das die fps fallen, aber..). Nur hätt ich gern das gleiche wie bei copyboy, nur gefüllt bzw. reicht es wenn der Kreis bei 100% voll ist und nur vom Winkel her abnimmt, also ein Kreissegment wird. (Könnte man mit surface machen, ist aber sicher zu umständlich => falls es noch niemand gemerkt hat, ich bin surface fan [und meisterentgrater]).
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]

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

  • ich war grad ne weile am rumprobieren, das kreissegment mittels draw_line (wie performancelastig das is, weis ich net..) auszufüllen, hab aber noch nicht ganz das gewünschte resultat erzielt... :P werd mich nachher nochmal dranhocken und mir diesmal vorher gedanken machen..^^
    "das war meine letzte flamewar PM an dich ."
  • Benutzer online 3

    3 Besucher