Gegner Angreifen + Schuss soll verfolgen

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

  • Gegner Angreifen + Schuss soll verfolgen

    Hallo Leute, ich bin neu angemeldet seit heute, habe aber die letzten 2 Tage über 4 Stunden mit der Suchfunktion so einiges probiert - habe auch einiges gefunden, doch es funktioniert nicht so richtig :(


    Also jetzt meine Bitte, ob mir jmd helfen könnte...


    ..Ich habe 3 Objekte, einmal das Monster1, das von A nach B laufen soll und dann habe ich zwischen A und B ein Monster2, dass auf Monster1 schießen soll. und dann habe ich noch Monster2Schuss (als objekt) was Monster2 schießen soll (auf Monster1) logischer Weise^^


    ....bei Monster1 habe ich nen Create-Event und dadrin sind die Actions:
    - Start moving in a direction
    - Set a path for the instance

    soweit klappt alles, das Monster1 läuft von A nach B

    bei Monster2 habe ich ein Create Event mit: - Start moving in a direction (es soll einfach stehen bleiben, tut es auch)
    und dann habe ich da noch als Event: Begin Step und Action dazu ist:
    - Create moving instance of Monster2Schuss (dadrin habe ich applies to self | object: Monster2Schuss, x=0,y=0, speed: 4)
    -Execute a piece of code:

    GML-Quellcode

    1. Diamond_Schuss.direction=point_direction(x,y,Slime_Monster.x,Slime_Monster.y)



    und jetzt hab ich noch Monster2Schuss:
    Events: Step: Execute a piece of code =

    GML-Quellcode

    1. if (distance_to_object(Monster1) <= 40) {
    2. mp_potential_step(Monster1.x,Monster1.y,speed,false);
    3. }




    Kann mir bitte jemand helfen, ich hab es so ausführlich geschrieben wie ich konnte, hoffe ich doch mal!

    Grüße... ;)


    EDIT!!!!!!!!!!!!!! also Monster2 schießt nicht, damit passiert garnichts.

    Monster2Schuss taucht ganz oben links im screen auf und fängt dann an loszulaufen(schießt) wenn das Monster1 fast aus dem screen ist, und der Schuss geht auch nicht aufs Monster1 zu sondern einfach nur waagerecht (und es ist nicht nur eine Kugel, sondern die Kugeln überlappen sich - sieht dann aus wie ein Strahl)





    xXx

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

  • Das Objekt Monster2Schuss in der linken oberen Ecke erscheint, liegt daran,
    dass du bei
    "Create Moving Instance" x=0 und y=0 gesetzt hast. Du musst unten noch den
    Haken bei relative setzen. Dann machst du am besten im selben Event bei
    direction noch rein: point_direction(x,y,obj_monster.x,obj_monster.y) dann
    dürfte eigentlich alles klappen.
    Übrigends: Herzlich willkommen in der deutschen GM Community
    (Endlich darf ich auch mal sowas sagen xD)
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Ich danke dir Spellmaker, und nochmals danke fürs Willkommen :D :rolleyes:


    ...Finds übrigends schön dass es hier so aktiv ist. und nicht Standard von 2005 oder so ..

    also danke, hat geklappt, ich bin jetzt mit den nächsten Problemen beschäftigt:

    Die Schüsse verfolgen Monster1, unzwar ballern die wie wild drauf zu, und wenns in ner distance von 100 ist verfolgen die die noch, sonst schießen die monster2 einfach waagerecht nach ->

    .......falls jemand mir helfen möchte :)

    Grüße...
  • Hab ich das richtig verstanden:
    Die Schüsse werden einfach nach rechts abgefeuert, sobald sie sich aber in einem Abstand von 100 Pixel befinden, folgen sie dem Gegner.
    Und dein Problem ist, dass die Schüsse zu häufig nacheinander abgefeuert werden und dass sie sich nur nach rechts bewegen?

    Damit die schüsse in einem bestimmten Abstand abgefeuert werden, hilft die vielleicht folgendes:

    Alles ins Monster2

    Create Event:

    GML-Quellcode

    1. alarm[0]= dein_gewünschter_zeitabstand_in_sekunden * room_speed; //room_speed ist genau eine sekunde

    Alarm 0:

    GML-Quellcode

    1. schuss = instance_create(x,y, Monster2Schuss);
    2. schuss.speed=4;
    3. schuss.direction=point_direction(x,y,object1.x,object1.y) //die direction zum zu verfolgenden objekt
    4. alarm[0]= dein_gewünschter_zeitabstand_in_sekunden * room_speed ; //room_speed ist genau eine sekunde



    Beim anderen Problem wäre eine genauere Beschreibung und ein grösserer Einblick in deinen Code ganz nett =)
    "das war meine letzte flamewar PM an dich ."
  • Danke. Ja du hast es richtig erkannt, ohne dass ich genau etwas beschreiben musste, grins..

    ...jap, ich werde es mir merken mit den Codes vorzeigen etc... dakne für den Tipp (hab ich ja in meinem ersten Post versucht:D)


    edit: gleich nochmal ne Frage reingequetscht^^:



    also wenn Monster1 aus der Reichweite ist dann hab ich es erstmal so eingestellt:

    GML-Quellcode

    1. if (distance_to_object(Monster1) <= 100) {
    2. mp_potential_step(Monster1.x,Monster1.y,speed,false); //Laufen
    3. }
    4. if (distance_to_object(Monster1) >= 100) {
    5. mp_potential_step(Monster2.x,Monster2.y,speed,false); //Laufen
    6. }



    nur Problem dabei ist, dass wenn es dann nicht mehr in der Reichweite ist, sammeln sich auf Monster2 dann die Schüsse und wimmeln umher bis Monster1 wiederkommt... gibt es da nen Collision code oder dergleichen? *I like dat forum*** >




    also dann schönen Abend noch, und bei weiteren Fragen, sollte ich da nen neuen thread aufmachen oder hier rein posten (weiß aber nicht ob dann jmd beantwortet..:?)

    .....Grüße... ^^

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

  • ttothef schrieb:

    Danke. Ja du hast es richtig erkannt, ohne dass ich genau etwas beschreiben musste, grins..

    also wenn Monster1 aus der Reichweite ist dann hab ich es erstmal so eingestellt:

    GML-Quellcode

    1. if (distance_to_object(Monster1) <= 100) {
    2. mp_potential_step(Monster1.x,Monster1.y,speed,false); //Laufen
    3. }
    4. if (distance_to_object(Monster1) >= 100) {
    5. mp_potential_step(Monster2.x,Monster2.y,speed,false); //Laufen
    6. }

    nur Problem dabei ist, dass wenn es dann nicht mehr in der Reichweite ist, sammeln sich auf Monster2 dann die Schüsse und wimmeln umher bis Monster1 wiederkommt... gibt es da nen Collision code oder dergleichen? *I like dat forum*** >



    Habs selbst rausgefunden, mit dem Code hier:


    GML-Quellcode

    1. if (distance_to_object(Monster1) >= 100)
    2. {
    3. with instance_nearest(x,y,Monster2Schuss) {instance_destroy()};
    4. }


    Problem dabei ist nur, wenn ich 2 Monster2 habe und die Schüsse so fast nebeneinander sind dann löst einer sich in der hälfte vom Schuss auf und der andere schießt weiter auf Monster1..... Kann mir da jemand helfen ? ?(
  • in welchem objekt wird der code ausgeführt?
    welche schüsse sind nebeneinander? die schüsse der beiden object2?

    ok, ich versuch mal, nachzuvollziehen, was in dem code passiert .
    (ausgehend davon, dass der code im Monster2Schuss ausgeführt wird):

    Quellcode

    1. - wenn distanz zu Monster1<=100
    2. dann geh zu ihm
    3. - wenn distanz>=100
    4. dann zerstör die nächste instanz von monster2Schuss, in dem Fall sich selbst?

    wenn der schuss also in grösserer entfernung als 100 abgefeuert wird, zerstört er sich sofort.


    (ausgehend davon, dass der code von Monster2 ausgeführt wird):

    Quellcode

    1. - wenn distanz zu Monster1<=100
    2. dann geh zu ihm
    3. - wenn distanz>=100
    4. dann zerstör die nächste instanz von monster2Schuss, im step event ausgeführt also alle instanzen



    sorry, wenn ichs mal wieder nicht verstanden hab..
    "das war meine letzte flamewar PM an dich ."
  • danke für deine interesse zum helfen, doch komischer weise funktioniert es jetzt. dass beide monster2 auf monster1 schießen können und die monster2schuss erst destroyn wenn sie auf monster1 sind. warum es jetzt geht ist mir rätselhaft, ich hatte ein wenig mit der health bar rumgespielt und jetzt wieder alles removed und jetzt geht es ordentlich, na ist doch auch super.

    ich danke erstmals für deine/eure hilfe :)
    falls du nochmal postest, sollte ich lieber ein neuen thread aufmachen wenn ich eine andere frage habe oder hier reinposten ???? danke für info.

    Grüße...