Schaden anhand Attack Damage und Weiteres :D

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

  • Schaden anhand Attack Damage und Weiteres :D

    Heyho. Ich programmiere zurzeit ein Spiel, in welchem man einen Helden hat der automatisch nach rechts, auf den Gegner schießt.
    Ich könnte natürlich bei jeden Projektil eine Collision mit dem Gegner festlegen und bei diesen denn einen Schaden festlegen, wie viel Schaden dieses Projektil an dem Gegner machen soll. (z.B Leben -= 2)

    Ich würde aber gerne hinbekommen, dass ich bei jedem Projektil eine Variable "damage" habe. Z.B "global.damage = 2" -> Das dieses Projektil bei JEDEM Gegner 2 schaden macht.

    Also: Ich möchte halt das man z.B auch den Schaden (also global.damage) aufwerten kann und somit jeder Gegner denn automatisch mehr Schaden durch dieses Projektil bekommt.

    -> Könnte man auch irgendwie festlegen das z.B eine Variable "gegner" alle Gegner enthält? Also: global.gegner = Gegner1,Gegner2,Gegner3,Gegner4... <- (Die Gegner bzw. Objekte)
    und denn im Projektil sagen, dass es jeden Gegner in der Variable schaden machen soll und der Schaden richtet sich halt nach dem global.damage im Projektil.

    Hoffe man hat es verstanden. Danke schon mal ^^
    :thumbup:
  • Du kannst ein Array aus den Gegnern machen und bei Kollision dieses mit einer For-Schleife durchgehen.
    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
  • du kannst einfach im step vom projectile eine hit variable erstellen, und für diese die kollision mit dem spieler abfragen und dementsprechen einen entsprechenden wert leben vom gegner abziehen. wieviel leben das sein soll, also wieviel schaden das projektil macht, kannst du auch in einer weiteren variable speichern.
    dafür machst am besten noch ein enemy parent, wo alle anderen gegner die childs von sind.
    so zb:

    Quellcode

    1. //hit
    2. hit = instance_place(x,y,obj_enemy);
    3. if (hit != noone)
    4. {
    5. obj_enemy.hp -= 10;
    6. instance_destroy();
    7. }

  • Erstmal zu deinem eigentlichen Anliegen, du kannst beim Erstellen ja individuell Variablen verändern,der schusscode sähe dann so ähnlich aus:

    GML-Quellcode

    1. //Player Step
    2. //wenn schuss:
    3. var nearest = instance_nearest(obj_enemy); //suche nähsten Gegner
    4. if (nearest != noone) { //wenn vorhanden
    5. var bullet = instance_create(x,y,obj_bullet); //erstelle Geschoss
    6. bullet.speed = 10; //setzte Geschwindigkeit
    7. bullet.dir = point_direction(x,y,nearest.x,nearest.y); //Richtung
    8. bullet.damage = global.damage; //Schaden
    9. }

    Im Gegner einfach nur ein Collision event mit obj_bullet, darin :

    GML-Quellcode

    1. health_points -= other.damage; //other bezieht sich hier auf obj_bullet
    2. with (other) instance_destroy; //zerstöre obj_bullet


    EDIT:
    Du kannst auch den ganzen Code im Geschoss verwalten, dann wäre es im obj_bullet ein collision event mit obj_enemy:

    GML-Quellcode

    1. other.health_points -= damage;
    2. instance_destroy;

    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel: