Objekt, das auf anderes Objekt schießt

  • GM 7
  • Objekt, das auf anderes Objekt schießt

    Hi, mach grad so ein Shooter in der Top-Ansicht und da wollt ich wissen, wie man einen Gegner macht, der auf das Objekt schießt, aber erst wenn das Objekt in einer bestimmten Umgebung ist, d.h. wenn das Objekt einen bestimmten Bereich erreicht hat, soll der Gegner auf das Objekt schießen und es gg. verfolgen
    Gruß Gamer
  • Hier ein Code, der ein Objekt auf den Spieler schießen lässt, sobald dieser nur noch höhstens 500 Pixel entfernt ist.

    GML-Quellcode

    1. //Createvent:
    2. schussmoeglich=1
    3. //Step-Event:
    4. if distance_to_object(obj_player)<=500
    5. if schussmoeglich=1
    6. {
    7. instance_create(x,y,obj_bullet)
    8. schussmoeglich=0
    9. alarm[0]=15 //In 15 Steps soll es wieder schießen können
    10. }
    11. //Alarm0-Event:
    12. schussmoeglich=1
    Alles anzeigen

    Das Bulletobjekt schaffst du vielleicht selber zu programmieren ;)
  • Erstmal danke.
    aber, der gegner schießt nicht sondern er createt nur das obj_bullet aber es bleibt auf ihm drauf, wie lautet der COde dafür dass er schießt.

    Und kann man es auch machen, dass es nicht vom abstand abhängig ist, dass er schießt, sondern in einem bestimmten markierten bereich, der zum beispiel viereckig ist, weil da ist der abstand ja nicht überall gleich
    Gruß Gamer
  • dann einfach ins create events von obj_bullet:

    GML-Quellcode

    1. move_towards_point(obj_player.x,obj_player.y,10)//jetzt geht er in die richtung des spielers;)


    edit:die 10 dahinten bedeut der speed
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)

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

  • Hey danke, bei move towards point war ich sogar schon, blos ich wusste nicht was für x und y rein soll danke. aber was bedeutet die 10 ganz hinten???

    weiß noch jemand was dazu:
    Und kann man es auch machen, dass es nicht vom abstand abhängig ist, dass er schießt, sondern in einem bestimmten markierten bereich, der zum beispiel viereckig ist, weil da ist der abstand ja nicht überall gleich
    Und nochmal etwas, wie macht man es, dass wenn man 2 tasten drückt, eine aktion ausgeführt wird, ich möchte nämlich, dass man wenn man pfeil runter und pfeil rechts gleichzeitig drückt, dass er dann diagonal nach rechts unten läuft.

    Hoffe ihr könnt mir da auch noch helfen.

    Gruß


    edit: das mit obj_player.x,obj_player.y funktioniert nicht
    edit2: funktioniert doch, sorry, das funktioniert sogar richtig geil, danke, genau so wollte ich das, so langsam versteh ich diese Codes.
    Gruß Gamer
  • ich hoffe ich habe es richtig verstanden was du meinst:S
    hier ein kleines example:
    zufallschuss.zip

    edit:
    wie wärs wenn du die bewegung benutzt ;)

    GML-Quellcode

    1. if keyboard_check(vk_right) {x+=5}
    2. if keyboard_check(vk_left) {x-=5}
    3. if keyboard_check(vk_up) {y-=5}
    4. if keyboard_check(vk_down) {y+=5}
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • ok, danke. das werd ich mal versuchen mit dem code, aber kannst du mir auch erklären was das bedeutet, so lern ich das auch gleich, weil das bringts ja nicht wenn ichs einfach einfüge.

    was bedeutet keyboard_check und was bedeutet das in der klammer mit dem x+=5 und so.

    Gruß Stefan


    edit: und was bedeutet hier die fettgedruckte 10
    move_towards_point(obj_player.x,obj_player.y,10)
    Gruß Gamer
  • keyboard_check() bedeutet das die taste ... in disem fall zb vk_right(rechte pfeiltaste) gedrückt wird...
    das x+=5 bedeutet das die x position des objektes 5 nach rechts gerückt wird

    edit: und was bedeutet hier die fettgedruckte 10
    move_towards_point(obj_player.x,obj_player.y,10)

    das habe ich schonmal gesagt,das ist der speed

    ich hoffe ich konnte es verständlich erklären :thumbsup:
    mfg s733
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Ok, vielen Dank

    das habe ich schonmal gesagt,das ist der speed
    Das hab ich nur nicht gesehen, da du es mit einem Edit hingeschrieben hast, sorry.

    edit: Wie geht das eig. dass der mich verfolgt, sobald ich auserhalb der 500er Marke ist, geht das??

    edit2: noch etwas, ich hab eingestellt, dass Health um 10 runter geht wenn mich die Kugel trifft, bei einer Kugel gehts dann aber immer 2 oder 3 mal 10 runter, wie mach ich das dass es nur einmal runter geht.

    edit3:
    if keyboard_check(vk_right) {x+=5}
    if keyboard_check(vk_left) {x-=5}
    if keyboard_check(vk_up) {y-=5}
    if keyboard_check(vk_down) {y+=5}

    kommt das ins create event oder wohin, im create event funktionierts nicht, wenn ich rechts und runter drücke, also die Pfeiltasten, dann läuft er entweder nach rechts oder unten, kommt drauf an welche taste ich früher gedrückt hab, habs auch noch damit probiert aber das glaub auch nicht:
    if keyboard_check(vk_right) and keyboard_check(vk_up) then direction=45 speed=4
    if keyboard_check(vk_right) and keyboard_check(vk_down) then direction=315 speed=4
    if keyboard_check(vk_left) and keyboard_check(vk_up) then direction=135 speed=4
    if keyboard_check(vk_left) and keyboard_check(vk_down) then direction=225 speed=4
    Gruß Gamer

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von The Gamer ()

  • zu edit1

    GML-Quellcode

    1. if distance_to_object(obj_player)>=500
    2. {
    3. mp_potential_step(obj_player.x,obj_player.y,10,false)
    4. }

    zu edit2:
    da musste einfach die kugel zerstören lassen?
    mit

    GML-Quellcode

    1. instance_destroy()

    oder falls de das kollision zwischen kugel und spieler ins spieler objekt hast dann

    GML-Quellcode

    1. with other instance_destroy()
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Oh dankeschön, so schnelle antworten :D

    weißt du auch was dazu:
    edit3:
    if keyboard_check(vk_right) {x+=5}
    if keyboard_check(vk_left) {x-=5}
    if keyboard_check(vk_up) {y-=5}
    if keyboard_check(vk_down) {y+=5}

    kommt das ins create event oder wohin, im create event funktionierts nicht, wenn ich rechts und runter drücke, also die Pfeiltasten, dann läuft er entweder nach rechts oder unten, kommt drauf an welche taste ich früher gedrückt hab, habs auch noch damit probiert aber das glaub auch nicht:
    if keyboard_check(vk_right) and keyboard_check(vk_up) then direction=45 speed=4
    if keyboard_check(vk_right) and keyboard_check(vk_down) then direction=315 speed=4
    if keyboard_check(vk_left) and keyboard_check(vk_up) then direction=135 speed=4
    if keyboard_check(vk_left) and keyboard_check(vk_down) then direction=225 speed=4

    edit: super, das zweite hat geklappt, das erste auch, aber er soll nicht gleich in die nähe kommen, sondern er soll erst mich verfolgen, wenn ich wieder aus seiner reichweite bin also erst wenn ich schonmal drin war

    edit2: Wie kann ich machen, dass wenn der Gegner in meine Richtung schießt, dass der Sprite sich auch in diese Richtung dreht.
    Und kann ich den Sprite auch mit Game maker irgendwie drehen oder muss ich für jede Richtung einen neuen Sprite machen, so hab ichs bisher gemacht, dass wenn ich nach links drücke, dass der Sprite sich ändert.
    Aber es gibt ja auch Spiele, bei der man in 1000 versch. Richtungen laufen kann und nicht nur in 4 und ich glaub nicht, dass da dann 1000 Sprites verwendet wurden, oder?
    Gruß Gamer

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von The Gamer ()

  • Benutzer online 1

    1 Besucher