Parallele Kugeln verschießen

  • GM 8

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

  • Parallele Kugeln verschießen

    Hi Leute.

    Ich habe da mal ne Frage.

    Wie kann man so 2 kugeln schießen lassen (links und rechts von flugzeug). die Parallel verlaufen. Ich lass auf die Maus zielen. Ich bitte im schnelle Hilfe.

    Ich habe grade diesen Code stehen:

    GML-Quellcode

    1. with instance_create (x+5,y,obj_bullet)
    2. {
    3. speed = 20
    4. direction = other-image_angle
    5. }
    6. with instance_create (x-5,y,obj_bullet)
    7. {
    8. speed = 20
    9. direction = other-image_angle
    10. }


    so soll es sein:

    . .
    . .

    und nicht so:
    ___.
    .
    .
    ___.

    (striche wegdenken)

    es geht ja, aber wenn cih mcih bissl dreh, dann verschmilzt es so zu sagen.
    mfg,
    the-rider
    "OMG, ich habe Kenny getötet"
    "Ich bin ein echter gangstar. Ich cheate in GTA San Andreas."
    "Ich bin Minecrafter ........ UND ICH BIN STOLZ DRAUF!!!"

    HomePage: the-rider.de.ki/
  • Angenommen die Drehung deines Spielers ist angle:

    GML-Quellcode

    1. with instance_create (x+lengthdir_x(5,angle+90),y+lengthdir_y(5,angle+90),obj_bullet)
    2. {
    3. speed = 20
    4. direction = other-image_angle
    5. }
    6. with instance_create (x+lengthdir_x(5,angle-90),y+lengthdir_y(5,angle-90),obj_bullet)
    7. {
    8. speed = 20
    9. direction = other-image_angle
    10. }


    Da sich der Spieler dreht, muss diese Drehung in die zu erstellende Instanz miteinberechnet werden.

    © 2008 by Teamgrill Productions

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

  • Ich persönlich löse Bullet Patterns immer über eine wie auch immer geartete Schleife. In diesem Fall dürfte repeat schon ausreichen. Ich würde mir das dann etwa so vorstellen:

    (Voraussetzung ist, dass image_angle=point_direction(x,y,mouse_x,mouse_y) ist und dass das Sprite-Origin deines Playerobjekts in der Mitte sitzt.)

    GML-Quellcode

    1. vdir=point_direction(x,y,mouse_x,mouse_y);
    2. bln=8;
    3. repeat(2){
    4. i=instance_create(x+lengthdir_x(bln,image_angle-90),y+lengthdir_y(bln,image_angle-90),bullet);
    5. i.direction=vdir;
    6. i.speed=8;
    7. bln*=-1;
    8. }


    Zur Erklärung: die Übergangsvariable (vdir) ist nötig, weil die Kugeln sonst nicht parallel am Fadenkreuz vorbei, sondern mitten durch fliegen würden. bln ist der Abstand der Kugelstartpunkte von der Spritemitte.
    In der Schleife wird dann über den Vektor mit der Länge bdir und in Richtung image_angle-90° eine Kugel erstellt, in die vor der Schleife festgelegte Richtung mit speed 8 abgefeuert und danach die Vektorlänge mit -1 malgenommen, damit die 2. Kugel im gleichen Abstand von der Spritemitte erstellt wird, aber in der entgegengesetzten Richtung. Somit hast du dann 2 Kugeln, die parallel auf dein Fadenkreuz zufliegen.

    Im Übrigen: Würdest du Vektorlänge oder Richtung mit in die Schleife aufnehmen, würdest du 2 Kugeln übereinander kreieren und sie in Richtung Fadenkreuz schicken - das nur der Vollständigkeit halber und als Erklärung, warum nur diese beiden Dinge außerhalb der Schleife stehen.

    Ich hoffe mal, ich konnte dir insofern helfen, dass du die Mechanik hinter dieser Geschichte gut verstanden hast. ^^
  • Danke irrenhaus³.

    Hast mir geholfen.

    Und nochmal an alle. Eure Codes hätten bestimmt geholfen :| . Ich hatte neben dem noch nen anderen Fehler drin :| . Also nichts für ungut :D.

    Der Fehler war, das ich das mouse_button_event zu früh geschlossen hatte :headtouch: self FAIL! :D

    mfg,
    the-rider
    "OMG, ich habe Kenny getötet"
    "Ich bin ein echter gangstar. Ich cheate in GTA San Andreas."
    "Ich bin Minecrafter ........ UND ICH BIN STOLZ DRAUF!!!"

    HomePage: the-rider.de.ki/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von the-rider ()