Physics - Top Down Schuss mit Physik

  • Allgemein

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

  • Physics - Top Down Schuss mit Physik

    hi,
    ich versuch mich grad in die GM:S Physics einzuarbeiten :D

    Jedenfalls wollte ich mal zum test sowas machen:
    (siehe anhang)

    Aaaaaaber,
    wie mache ich dass mein Turret, welcher von mir ganz einfach mit der Maus gesteuert wird,
    einen Schuss beim klicken abgibt. Dieser Schuss soll fliegen wie man es halt von so einem Schuss kennt :D
    Und sobald er gegen so eine "Kiste" knallt soll er apprallen und sich wie ein normales Physics-Objekt verhalten und dabei die Kiste so ein bisschen anschubsen.
    Das funktioniert bisher auch fast.
    Nur ist die Rotation des Schusses nicht richtig.
    Wie mach ich das dass das was man früher als image_angle kannte hier richtig eingestellt ist. Also auf die Richtung in die der Schuss fliegt. Bis er auf ein Objekt prallt.
    Bei mir will das einfach nich richtig klappen.

    Ich hätte also gerne einen Code für
    Mouse_pressed im Turret :thumbsup:

    lg. Pac
    Bilder
    • Unbenannt.png

      6,9 kB, 600×453, 358 mal angesehen
    Sorm ist Schuld

    Edit: Doch ist er
  • meinst du sowas?

    angenommen dein Spieler ist auch ein Physics Objekt

    GML-Quellcode

    1. var neu;
    2. neu = instance_create(phy_position_x, phy_position_y, obj_schuss);
    3. neu.phy_rotation = phy_rotation;
    4. neu.apply_force(phy_position_x, phy_position_y, obj_spieler.phy_position_x + lengthdir_x(16, obj_spieler.phy_rotation), obj_spieler.phy_position_y + lengthdir_y(16, obj_spieler.phy_rotation));


    es kann sein, dass du das hier im Schuss Objekt brauchst

    GML-Quellcode

    1. phy_fixed_rotation = true;

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Nein, mein Turret/Spieler ist kein Physics Objekt.

    Es hat nur im Step Event
    image_angle = point_direction(x,y,mouse_x,mouse_y)

    Und dann noch sein Mouse Pressed event

    Also so wirklich funktioniert das immernoch nich^^


    EDIT:

    So, hab jetzt bisschen experimentiert und bin weiter gekommen.
    Hab jetz im etwas sowas:

    GML-Quellcode

    1. var bul;
    2. bul = instance_create(x,y,object7)
    3. with(bul)
    4. {
    5. phy_rotation = -other.image_angle;
    6. physics_apply_force(x,y,lengthdir_x(200,other.image_angle),lengthdir_y(200,other.image_angle))
    7. phy_fixed_rotation = true;
    8. }


    Der Schuss kommt jetzt auch richtig raus und so. Frag mich nicht wieso...
    In den Properties hab ich ihm übrigens
    phy_linear_damping = 0
    phy_angular_damping = 0
    gesetzt, damit er nicht langsamer wird.

    Jetzt soll der Schuss aber wenn er gegen eine Kiste trifft
    wieder so werden:

    GML-Quellcode

    1. phy_fixed_rotation = false;
    2. phy_linear_damping = 0.1
    3. phy_angular_damping = 0.1

    Aaaaber, das funktioniert nicht. Ich habs im Collision Event, aber nix passiert. Es ändert sich nichts...
    Sorm ist Schuld

    Edit: Doch ist er

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

  • Pacmangamer schrieb:

    ich weiß, hab ich schon probiert. Aber da kam nur Quatsch raus 8|

    Kann mir keiner n Mouse-pressed code bieten? Nur so beispielhaft.
    Wie würdet ihr das machen?


    direction:



    phy_rotation:


    Das bringt dir eventuell vielleicht weiter ^^

    EDIT:

    Ich habe gehört, das phy_rotation ein umgekehrte Werte hat... jetzt weiß ich leider nicht, ob da oben oder das hier Richtig ist :I
    Ihr stinkt.
  • gms-d.de? Wasn das für ein Quatsch? ._.

    Und nein, das hilft mir nich wirklich weiter, sry.
    Denn mein Code funktioniert ja jetzt....auch wenn er mir teilweise Rätsel aufwirft und ich nicht glaube dass es schon die einfachste Möglichkeit ist.
    Außerdem scheint laut meinem Code ja das mit
    ch habe gehört, das phy_rotation ein umgekehrte Werte hat

    zu stimmen...ich setzt ja die phy_rotation auf den negativen Wert von image_angle
    Sorm ist Schuld

    Edit: Doch ist er