Problem / Objekt fix halten, an einer Position per Tasten druck

  • GM 8

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

  • Problem / Objekt fix halten, an einer Position per Tasten druck

    Hi nochmal,...
    Ich hab folgendes Problem :
    Ich würde gerne ein sich im Kreis bewegendes Objekt( obj_ziel1) , per Tastendruck zum still stehn bringen. So das es an seiner momentanen Postion stehn bleibt.
    der Code für das Objekt(obj_ziel1)

    Create

    GML-Quellcode

    1. hold = 0
    2. global.wert = 0


    step

    GML-Quellcode

    1. if hold = 0
    2. {
    3. var hk ;
    4. hk=keyboard_check(ord('D'))-keyboard_check(ord('A'));
    5. if(hk!=0)
    6. {
    7. dir=point_direction(ship.x,ship.y,obj_ziel1.x,obj_ziel1.y);
    8. obj_ziel1.x=ship.x+lengthdir_x(50,dir);
    9. obj_ziel1.y=ship.y+lengthdir_y(50,dir);
    10. }
    11. var hk1 ;
    12. hk1=keyboard_check(ord('S'))-keyboard_check(ord('W'));
    13. if(hk1!=0)
    14. {
    15. dir=point_direction(ship.x,ship.y,obj_ziel1.x,obj_ziel1.y);
    16. obj_ziel1.x=ship.x+lengthdir_x(50,dir);
    17. obj_ziel1.y=ship.y+lengthdir_y(50,dir)
    18. }
    19. }
    Alles anzeigen




    hier ein Example
    mediafire.com/download/vf5zwefjbz0hi4f/movement2.gm81

    Wie gesagt, das rote objekt ( obj_ziel1) , bewegt sich im Kreise bewegend per a,w,s,d um das ship objekt mit. Nun wenn ich z.b. auf die Pfeil nach oben taste drücke , soll es an seiner Position die es momentan hat stehn bleiben. Und!!!! weiter sich mit dem Obj_ship mitbewegen.
    Wie bekomme ich sowas hin ,... hab echt schon vieles ausprobiert...will aber nicht klappen.

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

  • Anstatt lengthdir_x und lengthdir_y gleich zu x und y hinzuzufügen, speicherst du sie in offsetx und offsety. Am ende fügst du dann offsetx und offsety zu x und y hinzu. Wenn du dann hold auf true oder 1 setzt, wird offsetx und offsety nicht mehr geändert. D.h. das Ziel bewegt sich zwar mit, aber die Richtung vom Ziel zum Schiff bleibt gleich. Ich hoffe ich konnte es verständlich erklären :P btw du brauchst nicht "obj_ziel1." schreiben wenn du den Code in "obj_ziel1" schon drinnen hast. Das könnte zu Problemen führen wenn du mehrere dieser Objekte im Spiel hast.

    Create:

    GML-Quellcode

    1. hold = 0;
    2. global.wert = 0;
    3. offsetx = x - ship.x;
    4. offsety = y - ship.y;


    Step:

    GML-Quellcode

    1. var dir;
    2. if (!hold) {
    3. if (keyboard_check(ord("D")) - keyboard_check(ord("A")) != 0) {
    4. dir = point_direction(ship.x, ship.y, x, y);
    5. offsetx = lengthdir_x(50, dir);
    6. offsety = lengthdir_y(50, dir);
    7. }
    8. if (keyboard_check(ord("S")) - keyboard_check(ord("W")) != 0) {
    9. dir = point_direction(ship.x, ship.y, x, y);
    10. offsetx = lengthdir_x(50, dir);
    11. offsety = lengthdir_y(50, dir);
    12. }
    13. }
    14. x = ship.x + offsetx;
    15. y = ship.y + offsety;
    Alles anzeigen