Richtung ändern

  • GM 8

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

  • Richtung ändern

    Hi Leute.

    Folgendes Problem. Mein Spieler bewegt sich frei im Raum und feuert von links nach rechts. Soweit kein Problem,... Doch nun wollte ich gerne per Knopfdruck die Richtung der gefeuerten Kugeln + die Blickrichtung ( incl. der animationen ) des Spielers ändern. Also von rechts nach links. Und das auch wieder zurück,.. wenn ich den besagten Button drücke.

    Wie mache ich das am besten?
  • mit || oder or

    GML-Quellcode

    1. if gehrechts = false or schussrechts = false
    2. {
    3. //gehrechts = true
    4. if schusstaste = true
    5. {
    6. //schiess auch nach rechts
    7. }
    8. }



    oder du stellst die Richtung auch dann um wenn du schiesst anstatt nur die Kugel azufeuern

    GML-Quellcode

    1. if gehrechts = true && schiessen = false
    2. {
    3. //schaunachrechts
    4. }
    5. if gehtrechts = false && schiessen = false
    6. {
    7. //schaunachlinks
    8. }
    9. if schussrechts = true
    10. {
    11. //schiess
    12. //schiessen = true
    13. //alarm ist irgendwas und setzt schiessen dann wieder auf false
    14. //schaunachrechts
    15. }
    16. //etcetcetc
    Alles anzeigen

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • Ok, Danke für die Antwort.
    Ich habe es etwas anders gelöst bekommen.
    Denn ich lasse jetzt meine Schussrichtung , durch sone Art Visier ( Ziel ) Objekt bestimmen. Dieses lasse ich durch das Raumschiff ( Playerobjekt ) erscheinen ( Create ). Im Ziel-Objekt selber , Begin Step event, perament dem Raumschiff folgen. Und durch drücken der Arrowtasten , lasse ich es der gedrückten richtung verschieben. Worauf sich denn die Schüsse + Raumschiff hin orientieren.

    Ein kleines Problem hätte ich doch dennoch dabei,....
    Mein Wissen reicht leider nur aus , dieses Visir ( Ziel ) rechts, links , oben ,...unten zu verschieben. Kann man es vielleicht " smoohter " hinbekommen. Also das wenn ich z.b. oben + rechts zusammen drücke ,..das, das Ziel auch in einem sauberen 45 grad Winkel steht. Oder sogar , eine saubere , stufenlose 360 grad drehung ums Raumschiff.

    Dank im voraus,...
    Andy
  • Ich habe dein Spiel nicht so ganz verstanden, aber du kannst einfach mit direction und speed arbeiten. Es bietet sich z.B. sowas an:

    GML-Quellcode

    1. direction = point_direction(player.x, player.y, mouse_x, mouse_y); // Fliege auf letzte Mausposition zu
    2. speed = 2;


    Wenn du mit einem festen Abstand len arbeiten willst, bieten sich lengthdir_x und lengthdir_y an. Die nehmen jeweils einen Winkel (0 bis 359, rechts angefangen und dann gegen den Uhrzeigersinn, sprich 90 ist z.B. oben) und einen Abstand:

    GML-Quellcode

    1. len = 5; // Abstand
    2. dir = direction; // Winkel, z.B. die direction
    3. x = player.x + lengthdir_x(len, dir);
    4. y = player.y + lengthdir_y(len, dir);

    Dies ist z.B. nützlich, wenn du ein Fadenkreuz in einem festen Abstand zum Raumschiff anzeigen willst.
  • neogeo schrieb:

    Hi Leute.

    Folgendes Problem. Mein Spieler bewegt sich frei im Raum und feuert von links nach rechts. Soweit kein Problem,... Doch nun wollte ich gerne per Knopfdruck die Richtung der gefeuerten Kugeln + die Blickrichtung ( incl. der animationen ) des Spielers ändern. Also von rechts nach links. Und das auch wieder zurück,.. wenn ich den besagten Button drücke.

    Wie mache ich das am besten?


    Ein kleiner Ansatz:

    GML-Quellcode

    1. //STEP event
    2. if keyboard_check(vk_right) //nach rechts gehen
    3. {
    4. image_xscale = 1;
    5. x+=5;
    6. }
    7. if keyboard_check(vk_left) //nach links gehen
    8. {
    9. image_xscale = -1;
    10. x-=5;
    11. }
    12. if keyboard_check_pressed(vk_space) //schießen
    13. {
    14. with(instance_create(x, y, objSchuss))
    15. {
    16. speed = 10;
    17. direction = (other.image_xscale+1)*90;
    18. }
    19. }
    Alles anzeigen


    Wenn Du das ins Step Event einfügst, sollte alles einwandfrei funktionieren.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • neogeo schrieb:

    Hi Leute.

    Folgendes Problem. Mein Spieler bewegt sich frei im Raum und feuert von links nach rechts. Soweit kein Problem,... Doch nun wollte ich gerne per Knopfdruck die Richtung der gefeuerten Kugeln + die Blickrichtung ( incl. der animationen ) des Spielers ändern. Also von rechts nach links. Und das auch wieder zurück,.. wenn ich den besagten Button drücke.

    Wie mache ich das am besten?

    Ohne die anderen Posts vor mir zu lesen, versuche ich es mal.

    OBJ_SPIELER
    Create Event
    :event_create:

    GML-Quellcode

    1. richtung = direction;


    Step Event :event_step:

    GML-Quellcode

    1. if (mouse_check_button_released(mb_left)) {
    2. richtung = mouse_x;
    3. richtung = mouse_y:
    4. instance_create(x,y,obj_schuss);}
    5. if (richtung == 0) {
    6. sprite_image(img_oben);}
    7. if (richtung == 90) {
    8. sprite_image(img_rechts);}
    9. if (richtung == 180) {
    10. sprite_image(img_unten);}
    11. if (richtung == 270) {
    12. sprite_image(img_links);}
    Alles anzeigen


    OBJ_SCHUSS
    Create Event
    :event_create:

    GML-Quellcode

    1. direction = obj_spieler.richtung;
    2. speed = 5;
  • Du hättest die Posts in dem Fall wohl lieber lesen soll^^ denn das Problem wurde schon gelöst und er fragt nach etwas ganz anderem. Das Problem mit dem Fadenkreuz wiederrum sollte MewX eigtl schon gelöst haben wenn ich mir den Code so ansehe.

    Aber ein paar Fragen habe ich an deinen Code; Zuerst setzt du richtung auf Direction, dann wird Richtung die X Korrdinate der Maus, dann die Y Koordinate falls die maustaste gedrückt wurde. Danach muss man immer genau auf 0, 90, 180 oder 270 einmal schießen damit sich das Sprite in die richtige richtung verändert...wenn es so funktionieren würde.

    Warum fragt obj_schuss nicht die direction Variable ab und warum benutzt obj_spieler nicht einfach die direction Variable? Und wie das mit der richtigen Ausrichtung geht sieht man eh in MewX post.

    Das mit dem Blind Posten war ja dann wohl leider eine Bruchlandung.

    Allgemein, sollte niemand, einfach Code posten der vorher nicht getestet wurde, vorallem wenn der Fragesteller noch neu ist.

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • Michaelp800 schrieb:

    if (mouse_check_button_released(mb_left)) {
    richtung = mouse_x;
    richtung = mouse_y:
    instance_create(x,y,obj_schuss);}

    Darf ich nachfragen, was das richtung = mouse_x; und mouse_y; bringen soll? ^^
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)