Gegner kann nicht schießen

  • Gegner kann nicht schießen

    Hallo,
    nochmal eine kleine Frage:
    Ich habe einen Gegner in meinem Spiel, und dieser soll auf mich schiessen, wenn ich z.B. 300 Pixel vor ihm bin.
    Wie mache ich das am besten?
    Braucht ihr noch mehr Infos?

    Gruss Simon
    Und schon mal VIELEN DANK :)


    Ps.: Habs schon versucht, aber weil es immer mehrer gegner giebt, bleiben die kugeln ab und zu in der luft "hengen".
  • du musst auf jeden fall den abstand c berechnen. und da hilft

    pythagoras: a*a + b+b = c*c

    a ist der x-unterschied
    b ist der y-unterschied

    wenn du das verstanden hast, müsstest du es eigentlich hinkriegen, beispiel if a*a + b*b < c*c then ...

    vielleicht reicht für deine zwecke aber auch folgende funktion:

    if distance_to_object(...) < ...

    (siehe Anhang, da hat Objekt "0" im Ereignis "Step" einen dementsprechenden Code )
    Dateien
    • distanz.zip

      (4,49 kB, 258 mal heruntergeladen, zuletzt: )

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

  • Also, das hab ich jetzt unter Step beim Gegner eingefügt:

    Quellcode

    1. if distance_to_object(pirx)<300
    2. {
    3. if schuss=true
    4. {
    5. instance_create(x,y,alien_schuss)
    6. schuss=false
    7. alarm[0]=10
    8. }
    9. move_towards_point(pirx.x,pirx.y,2)
    10. }


    Wenn ich dann aber die 300 pixel zu nahe komme, dann schießt der gegner ununterbrochen und fliegt auf mich zu *g*

    Gruss Simon
  • move_towards_point(pirx.x,pirx.y,2)

    wahrscheinlich desswegen, da dein objekt gegner laut diesem befehl zu dir fliegen soll.

    {
    pirx.x = bullet.x <- statt den gegner die muni zu dir fliegen lassen
    pirx.y = bullet.y
    }

    }//


    den code würde ich aber nicht beim gegner sondern beim "muni" objekt vom gegner einfuegen,. dan isses verständlicher.

    Denn der jeweilige code bestimmt wasmit diem objekt dem der code zugewisen würde geschehen soll, nicht was vielleicht besser wäre :)



    Uch hoffe ich konnte dir helfen, bin selbst noch gml-n00b ::)



    Gruß chris
    ->Pentium 4
    ->3.6 Ghz HT
    ->1024 mb DDR Ram 400
    ->400 GB S.ATA FP
    -> 256 mb Radeon X800 Graphikk.
    *har* * (-*har*)
  • Original von MegFunc
    {
    pirx.x = bullet.x;
    pirx.y = bullet.y;
    };
    dann bewegt sich der spieler zur position der kugel, die die selbe ist, wie die position des spielers beim abschuss. :no:
    also bleibt alles an einem fleck! :evil:



    Quellcode

    1. if (schuss_loader<1)
    2. {
    3. schuss_loader += 0.05;
    4. };
    5. if (distance_to_object(pirx)<300&&schuss_loader>=1)
    6. {
    7. with (instance_create(x,y,alien_schuss))
    8. {
    9. direction = point_direction(x,y,pirx.x,pirx.y);
    10. speed = /* zum beispiel */ 8;
    11. };
    12. schuss_loader = 0;
    13. };
    Alles anzeigen

    ins create event muss:

    Quellcode

    1. schuss_loader = 1;


    hoffe, dass es richtig ist ... habs ausm kopf geschrieben.

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