Lebensanzeige

  • GM 8

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

  • Lebensanzeige

    Hallo ich breuchte hilfe ich würde gerne Eine Lebensanzeige aus Bildern machen. Möchte aber nicht mit der Healthbar arbeiten ich habe schon verschiedene sachen versucht und schon viele Tuts angeschaut, aber der zeigt mir die Bilder nicht an. Ich bin ein Noob in GM also bitte nicht wundern ^^.

    ---> Es tut mir leid wenn es schonmal gefragt wurde.

    also ich habe bei Meinem obj mit dem Namen: Lebensanzeige ein Create Event:
    code:
    health = 8;


    und im Draw Event:
    code:
    if (health > 8)
    { draw_sprite (sprite_index=Leben,image_index=0,x,y)}
    if (health < 7)
    { draw_sprite (sprite_index=Leben,image_index=1,x,y)}
    if (health < 6)
    { draw_sprite (sprite_index=Leben,image_index=2,x,y)}
    if (health < 5)
    { draw_sprite (sprite_index=Leben,image_index=3,x,y)}
    if (health < 4)
    { draw_sprite (sprite_index=Leben,image_index=4,x,y)}
    if (health < 3)
    { draw_sprite (sprite_index=Leben,image_index=5,x,y)}
    if (health < 2)
    { draw_sprite (sprite_index=Leben,image_index=6,x,y)}
    if (health < 1)
    { draw_sprite (sprite_index=Leben,image_index=7,x,y)}
    if (health < 0)
    { draw_sprite (sprite_index=Leben,image_index=8,x,y)}
    else if (health == 0)
    { game_end();}
    Leben = ist mein Sprite mit 9 Bildern
    Die so aussehen:



    ich hocke da seit 2 wochen dran aber ich finde einfach keine lösung.

    >> Natürlich habe ich Das obj in den raum eingefügt aber naja nichts wird angezeigt.

    ich hoffe ihr könnt mir helfen. ;(

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

  • JUHU es geht

    Geil es geht Danke euch.

    Hier nochmal für alle die das selbe Problem haben.

    obj_Lebensanzeige

    +
    health = 0;
    image_speed = 0;


    +
    draw_sprite(Leben,health,x,y);
    if (health == 8)
    game_end();
    //Game Ende oder was Ihr wollt
    if (health > 0)
    >> Leben << <-- Sprite
    ist bei mir im Sprite das erste, also volle Lebensanzeige.

    Dann machen wir im obj_Player

    :event_collision: << euer Bullet oder Monster+ :action_code:
    if (Lebensanzeige.health == 8)
    {
    game_end();
    }
    else
    {
    Lebensanzeige.health+=1;
    with (other)
    { instance_destroy();}
    }
    Fertig jetzt nur noch "obj_Lebensanzeige" und "obj_Player" in euren Raum setzen.

    Ich danke euch für eure Hilfe. :love:

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

  • Eutros2011 schrieb:

    +
    if (health > 0)
    { draw_sprite(Leben,health,x,y)}
    if (health < 1)
    { draw_sprite(Leben,health,x,y)}
    if (health < 2)
    { draw_sprite(Leben,health,x,y)}
    if (health < 3)
    { draw_sprite(Leben,health,x,y)}
    if (health < 4)
    { draw_sprite(Leben,health,x,y)}
    if (health < 5)
    { draw_sprite(Leben,health,x,y)}
    if (health < 6)
    { draw_sprite(Leben,health,x,y)}
    if (health < 7)
    { draw_sprite(Leben,health,x,y)}
    if (health < 8)
    { draw_sprite(Leben,health,x,y)}
    else if (health == 8)
    { game_end();} //Game Ende oder was Ihr wollt

    Das ist viel zuviel. Warum die ganzen if´s wenn du immer das selbe machst?
    Du kannst das ganze normalerweiße auch so schreiben:

    GML-Quellcode

    1. draw_sprite(Leben,health,x,y);
    2. if (health == 0)
    3. game_end();


    Mfg.,
    Mokuyobi
    木曜日 (Mokuyōbi)
  • LOL so einfach

    Okay das habe ich garnicht gewusst dass das die anderen sachen überflüsig sind. Danke dir
    :love:

    (Zusammengeschoben von Ih3)

    und nun habe ich wieder ein problem das aber mit der Lebensanzeige zusammen hängt.

    Also alles Funkt einband frei aber hier schaut selber ich weis nicht wie man es schaft das ich das ding im vordergrund beckomme und sich die Map im Hintergrund weiter bewegen kann.

    fileuploadx.de/553564
  • damit sich die hp-anzeige mit dem spieler mitbewegt musst du deren koordinaten am aktuellen view ausrichten und nicht am room.

    Das würde dann im Draw-Event vom Objekt "Lebensanzeige" so aussehen:

    GML-Quellcode

    1. draw_sprite(Leben,health,view_xview+x,view_yview+y);


    mfg
    G
  • Super geht alles so wie ich es haben wollte danke euch für die schnellen antworten. :gmlove:

    (Zusammengeschoben von Ih3)

    Ich hätte da noch eine frage Kann man einem Objekt eine 2 x,y achse geben denn wer sich mein File Heruntergeladen hat wird merken das der sich Wenn er Schießen will sich selber killt dies möchte ich unterbinden da ich diese Bullets mit dennen man sich selber killt nachher als Multiplayer benutzen will.

    Was kann ich ändern das es so ist.

    eine neue Bullet erstellen für den 2 Player und die alle beide als colision einbinden bei beiden spielern:

    Spieler_1 = Colision >>Bullet_Spieler_2<<

    Spieler_2 = Colision >>Bullet_Spieler_1<<

    ????

    oder gibt es eine einfachere lösung?

    denn ich will mehrere Spieler erstellen nicht nur 2. :love:
  • Damit nur andere Spieler Schaden erleiden könntest du zB beim Erstellen der Kugel an diese eine Variable mit der ID des Spielers übergeben, der die Kugel abgefeuert hat.

    Wenns dann eine collision zwischen "Spieler_x" und "Bullet_Waffe_Schrotflinte" gibt UND die id von Spieler_x nicht die gleiche wie in der übergebenen Variable ist erleidet dieser Spieler Schaden.

    mfg
    G
  • Das schöne am Spiele basteln ist, dass viele Wege zum gewünschten Ergebnis führen.
    Wenn dir manche der in Foren beschriebenen Lösungsvorschläge zu komplex sind, versuch am besten mit der Hilfedatei selbst auf eine andere (evtl. einfachere) Lösung zu kommen.
    So habe ich mir selbst auch das Arbeiten mit dem GM beigebracht, imho lernt man so definitiv mehr als wenn man vorgefertigte Lösungen übernimmt.

    Eine einfachere Lösung wäre in diesem Fall zB dass du die bullets einfach etwas außerhalb vom Spieler erstellst. Somit können sie nur auf andere Spieler treffen und nicht auf den Spieler, der die Kugel abgefeuert hat.

    Der Vollständigkeit halber, hier eine Möglichkeit wie du auch meine Lösung relativ schnell umsetzen könntest:

    im Objekt Bullet_Waffe_Schrotflinte ein Create-Event erstellen und dort folgenden Code einfügen:

    GML-Quellcode

    1. var_origin = instance_nearest(x,y,Spieler_1);


    im Objekt Spieler_1 das Collision-Event mit Bullet_Waffe_Schrotflinte um eine if-Abfrage zu var_origin erweitern

    GML-Quellcode

    1. if (Lebensanzeige.health == 8)
    2. {
    3. game_end();
    4. }
    5. else
    6. {
    7. if(other.var_origin != id){
    8. Lebensanzeige.health+=1;
    9. with (other){
    10. instance_destroy();
    11. }
    12. }
    13. }
    Alles anzeigen


    fertig ;)

    ich hoffe das hilft dir weiter

    mfg
    G
  • gleich mal ausprobieren aber schon wieder ein problem

    Ich werde es gleich mal ausprobieren aber jetzt habe ich wieder ein Problem.

    Also ich wollte es so machen das mein Sprite des Bodens extern geladen wird. Das funkioniert auch super aber wenn ich das game Starte, fält der Spieler durch den Sprite einfach durch ich finde leider keine Lösung auch nach Stunden Langen Googlen oder Suche Hier.

    Hier mal die Datei: fileuploadx.de/104583

    Ich habe auch in der Hilfe Funktion nichts gefunden was mir weiter geholfen hat.

    kennt Ihr eine lösung das ich wieder auf meiner Map Laufen kann und wie immer noch extern geladen wirt?

    Würde mich echt freuen. :love:
  • Danke und frage wegen Quest system

    Also muss ich das sprite doch als internes Sprite benutzen.

    MMMMH das ist ja schade ich wollte eigendlich das meine Game.exe nicht zu groß wird.

    Aber naja danke dir werde das mal machen. Auser ich setze ein fach nur einen Ramen als Boden der hinter dem Externen Boden Liegt.

    das müsste eigendlich auch gehen und so Funktionieren. Mal schauen.

    Achso!!!

    Ich habe im Internet ein Quest System gefunden das meiner meinung recht gut ist aber wie schaffe ich es das ich eine neue Quest zu erstellen?
    vieleicht kennt Ihr das Quest System:

    (Script) -> scrSetVar:

    GML-Quellcode

    1. global.questHave = false;
    2. questOn = 0;


    (Script) -> scr_quest_check_finish:

    GML-Quellcode

    1. var objReq;
    2. objReq = argument1;
    3. if keyboard_check_released(vk_space)
    4. {
    5. if global.questnum_start[argument0] = true
    6. {
    7. if global.questnum_finish[argument0] = false
    8. {
    9. if goldAmount >= global.goldrequired_forquest[argument0]
    10. {
    11. show_message("Congratulations! You have completed the quest!");
    12. global.questnum_finish[argument0] = true;
    13. global.questHave = false;
    14. objReq = 0;
    15. questOn += 1;
    16. }
    17. else
    18. {
    19. show_message("You haven't brought me enough gold :(");
    20. }
    21. }
    22. }
    23. }
    Alles anzeigen


    (Script) -> scr_quest_new:

    GML-Quellcode

    1. var rad_from_NPC;
    2. globalvar questnum;
    3. globalvar questnum_start;
    4. globalvar questnum_finish;
    5. globalvar goldrequired_forquest;
    6. global.questnum = argument0;
    7. global.questnum_start[argument0] = false;
    8. global.questnum_finish[argument0] = false;
    9. global.goldrequired_forquest[argument0] = argument1;
    10. if distance_to_object(oNPC) < 5 // checks how far away it is!
    11. {
    12. if keyboard_check_released(vk_space)
    13. {
    14. if global.questnum_start[argument0] = false // check if the spacebar is pressed, and is in within a argument0 pixel radius of the NPC
    15. {
    16. if show_question("Do you want to start a quest?")
    17. {
    18. show_message("Collect " +string(goldrequired_forquest[argument0]) + " peices of " + argument2 + " please!");
    19. global.questnum_start[argument0] = true;
    20. global.questHave = true;
    21. }
    22. else
    23. {
    24. show_message("Mabye next time then!");
    25. }
    26. }
    27. }
    28. }
    Alles anzeigen



    das ist im Step Event des Players:

    GML-Quellcode

    1. //Quest 1 for 5 gold!
    2. if global.questHave = false && questOn = 0 //Check if I am currently doing a quest, and if i'm on the first quest
    3. {
    4. scr_quest_new(0, 5, "Gold coins"); //So you haven't start the first quest? Then start quest (0), and get (5) peices of ("Gold coins")
    5. }
    6. if global.questHave = true && questOn = 0 //You've Started that quest! Lemme see if your asking to finish the right quest...
    7. {
    8. scr_quest_check_finish(0, goldAmount); //Hm...Have you got enough gold coins(goldAmount) for quest(0)? Well if you have well done!
    9. }
    10. //Quest 2 for 10 gold!
    11. if global.questHave = false && questOn = 1 //I don't feel like writing the same stuff over and over again...
    12. {
    13. scr_quest_new(1, 15, "Gold coins"); //So i'll let you figure this one out...
    14. }
    15. if global.questHave = true && questOn = 1
    16. {
    17. scr_quest_check_finish(1, goldAmount); // Oh BTW, the (goldAmount) bit, is the item your asking for :P
    18. }
    19. //Quest 3 for 15 gold!
    20. if global.questHave = false && questOn = 2
    21. {
    22. scr_quest_new(2, 30, "Gold coins");
    23. }
    24. if global.questHave = true && questOn = 2
    25. {
    26. scr_quest_check_finish(2, goldAmount);//P.S the first bit, is what quest :D
    27. }
    Alles anzeigen


    Das ist nur ein kleiner teil aber so weit ich hier sehen kann arbeitet der nur mit nem Geld System (goldAmount) zusammen. Ich habe es auch soweit geschaft das ich die Items die er einsammeln soll zu ändern aber wenn ich eine 2te Quest mit einem anderen Item also Obj machen will geht das nicht kennt Ihr vieleicht die lösung oder kennt Ihr ein einfacheres Quest System. Ich möchte das wenn eine Quest abgeschlossen ist das er Gold erhält und nicht einsammeln muss und ich möchte mehrere Quests erstellen. denn ich setze mal ne Kleine Quest auf am anfang des Spieles:

    Anfrage an Den NPC mit der 'F' Taste, der mir die aufgabe gibt 6 Rosen zu sammeln.
    Das geht Wunderbar. aber wie mache ich das ich jetzt zum Beispiel nach erfüllen der Quest 6 Gold bekomme und sagen wir mal exp also Erfahrungspunkte? Lvl System habe ich schon Fertig Gold Anzeige habe ich auch schon, es geht mir nur um das Quest System. ;(


    Bis jetzt haben alle eure Ideen Funktioniert und deswegen wennde ich mich wieder mal an euch. :love: