enemy healthbar problem

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

  • enemy healthbar problem

    also ich habe for einen enemy healtbar zu machen jedoch kommt ständig die fehlermeldung

    GML-Quellcode

    1. Variable obj_enemi.hp_current(100057, -2147483648) not set before reading it.
    2. at gml_Object_obj_enemi_CreateEvent_3 (line 1) - hp_percent = (hp_current/hp_max)*100




    jedoch habe ich die variable gesetzt im create event...hier mein code (hab ich aber diesmal per drag drop gemacht)

    Obj_enemy
    Create EVENT
    Set Variable

    GML-Quellcode

    1. hp_max=100


    Set Variable

    GML-Quellcode

    1. hp_current=100


    Set Variable

    GML-Quellcode

    1. hp_percent =(hp_current/hp_max)*100



    Obj_enemy
    Step Event
    Set Variable

    GML-Quellcode

    1. hp_percent =(hp_current/hp_max)*100



    obj_enemy
    collision_event

    GML-Quellcode

    1. hp_current=-25;



    obj_enemy
    draw_event

    set color

    GML-Quellcode

    1. red


    draw_rectangle

    GML-Quellcode

    1. x1=-25;
    2. x2=-25+(hp_percent/2);
    3. y1=-40;
    4. y2=-50;
    5. filled;
    6. relative=yes


    set color

    GML-Quellcode

    1. green


    draw_rectangle

    GML-Quellcode

    1. x1=-25;
    2. x2=-25+(hp_percent/2);
    3. y1=-40;
    4. y2=-50;
    5. outlined
    6. relative=yes



    was mach ich falsch
  • @Husi012

    hallo du ich habe eine frage und zwar hast du mir in einem post das mit der for schleife vorgeschlagen und das ging auch gut.....es ging darum das ich 4 kugeln erstelln wollte sobald der gegner tot ist. und sie dann zu mir fliegen...

    es funktioniert auch gut aber ich hab das problem das ich es so will das wenn mich eine kugel berührt eine bestimmte zahl an xp bekomme.

    hier der code

    GML-Quellcode

    1. var obj;
    2. for(i=0,i<4,i++)
    3. obj=instance_create(x,y,obj_kugel)
    4. image_index=i++;///oder so


    wie mach ich es das ich jede einzelne von den 4 kugeln eine bestimmte xp zahl zuweise????
  • Im prinzip eig. ganz einfach
    In obj_kugel erstellst du im create event eine variable i=0;
    Dann ein array
    Punkte[0] =5
    Punkte[1]= 15 usw.

    Im collisionsevent mit player schreibst du
    Z.B obj_player.xp += punkte irgendwie kann ich dir eckigen klammer nicht ausgeben... aufjedenfl nach += punkte eckige klammer auf i eckige klammer zu

    var obj;
    for(i=0,i<4,i++)
    obj=instance_create(x,y,obj_kugel)
    // und hier
    Obj.i =i
    image_index=i++;///oder so

    Das wäre ne möglichkeit man könnte es auch bissl anders machen und sich noch das i im create event sparen aber so sollte es eig.
    Wir stehen zusammen und wir fallen zusammen

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

  • hallo danke für deine hilfe hab es schon gestestet und scheint zu funktionieren muss es nur noch ganz prüfen aber zuvor brauche ich deine hilfe nochmal bei der enemy healthbar

    also ich habs so gemacht

    obj_enemy
    create event

    GML-Quellcode

    1. hp=10;
    2. hp_max=hp;


    obj_enemy
    draw_event
    wurde mit drag&drop gemacht
    Draw Sprite......Sprite Enemy

    SET COLOR = RED

    GML-Quellcode

    1. [color=#FF0000]Draw Rectange[/color]
    2. x1=0;
    3. y1=-5;
    4. x2=30;
    5. y2=0;
    6. Filled=filled
    7. Relative=yes


    SET COLOR = Green

    GML-Quellcode

    1. [color=#FF0000]Draw Rectange[/color]
    2. x1=0;
    3. y1=-5;
    4. x2=(30/hp_max)*hp;
    5. y2=0;
    6. Filled=filled
    7. Relative=yes


    SET COLOR = Black

    GML-Quellcode

    1. [color=#FF0000]Draw Rectange[/color]
    2. x1=0;
    3. y1=-5;
    4. x2=30;
    5. y2=0;
    6. Filled=outline
    7. Relative=yes



    sie funktioniert auch nur das problem ist das ich sie direkt über die köpfe der enemys haben will doch zur zeit sind sie mitten im enemy!!!!



    achja ich hab versucht den obrigen code statt drag&drop per code zu machen also so

    GML-Quellcode

    1. draw_self();
    2. draw_set_colour(c_red);
    3. draw_rectangle(0,-5,30,0,false);
    4. draw_set_colour(c_green);
    5. draw_rectangle(0,-5,30/hp_max*hp,0,false);
    6. draw_set_colour(c_black);
    7. draw_rectangle(0,-5,30,0,true);




    aber das funktioniert nicht was mach ich da falsch??
  • @Husi012


    hy danke für die antwort und mir ist klar das das ganze ins draw event gehört aber um die gedrawte healthbar dann über den köpfen zu machen muss ich das mit obj_enemy.x ins step event oder???damit es ständig über dem kopf bleibt.


    und wo ins draw event wenn doch???


    und kannst du mir auch noch sagen wieso dieser code nicht geht??


    obj_enemy
    create event

    GML-Quellcode

    1. ​hp=10;
    2. hp_max=hp;



    obj_enemy
    draw event

    GML-Quellcode

    1. draw_self();
    2. draw_set_colour(c_red);
    3. draw_rectangle(0,-5,30,0,false);
    4. draw_set_colour(c_green);
    5. draw_rectangle(0,-5,30/hp_max*hp,0,false);
    6. draw_set_colour(c_black);
    7. draw_rectangle(0,-5,30,0,true);
    Alles anzeigen
  • Wird es dir insgesamt nicht angezeigt?
    Müsste zwar beim room ganz oben links angezeigt werden, aber auch nur mit 25 pixeln, da du y1 = -5 hast
    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