Alles auf einer Taste?

  • Alles auf einer Taste?

    Hi Leudde,
    Ich mache gerade ein aus der Vogelperspektive. Man spielt eine Figur, die per Leertaste schießen soll, jedoch in der Richtung, wo sie gerade guckt(links,recht,oben,unten). Hat einer ein Plan wie man das machen kann?
    Wem die Scheiße bis zum Hals steht, der sollte den Kopf nicht hängen lassen.

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

  • RE: Alles auf einer Taste?

    Original von Progamer
    Hi Leudde,
    Ich mache gerade ein aus der Vogelperspektive. Man spielt eine Figur, die per Leertaste schießen soll, jedoch in der Richtung, wo sie gerade guckt(links,recht,oben,unten). Hat einer ein Plan wie man das machen kann?


    Klar!

    Gebe dir mal ein Script von mir. Da kannste dir das raus ziehen....

    In alle Richtungen schiessen

    Gruß
    Was man mit Händen baut, kann auch mit Händen zerstört werden...
  • mach das hier einfach bei dir ins step event

    GML-Quellcode

    1. //richtungstasten
    2. if keyboard_check(vk_left)
    3. {
    4. schussrichtung=180
    5. x-=4
    6. }
    7. if keyboard_check(vk_right)
    8. {
    9. schussrichtung=0
    10. x+=4
    11. }
    12. if keyboard_check(vk_up)
    13. {
    14. schussrichtung=90
    15. y-=4
    16. }
    17. if keyboard_check(vk_down)
    18. {
    19. schussrichtung=270
    20. y+=4
    21. }
    22. //schuss erstellen
    23. if keyboard_check(vk_space)
    24. {
    25. create=instance_create(x,y,schussobject)
    26. create.direction=schussrichtung
    27. create.speed=10
    28. }
    Alles anzeigen
    Die Schönheit liegt im Auge des Betrachters :D
  • Hey das ist doch mal was. Aber jetzt noch 2 Probleme.

    1. Wie mache ich, dass nach jedem Schuss eine Pause ist?

    2. Wie muss ich diesen Script ändern, das ich A drücke statt Pfeiltaste links, damit die Figur nach links läuft?

    GML-Quellcode

    1. if (keyboard_check(vk_left))=true
    2. {
    3. if place_free(x-3,y) x -= 3;
    4. {
    5. image_speed = 1.0;
    6. image_single =-1;
    7. sprite_index = Men;
    8. dir = 180;
    9. }
    10. }
    Wem die Scheiße bis zum Hals steht, der sollte den Kopf nicht hängen lassen.
  • Original von Progamer
    Hey das ist doch mal was. Aber jetzt noch 2 Probleme.

    1. Wie mache ich, dass nach jedem Schuss eine Pause ist?

    2. Wie muss ich diesen Script ändern, das ich A drücke statt Pfeiltaste links, damit die Figur nach links läuft?

    GML-Quellcode

    1. if (keyboard_check(vk_left))=true
    2. {
    3. if place_free(x-3,y) x -= 3;
    4. {
    5. image_speed = 1.0;
    6. image_single =-1;
    7. sprite_index = Men;
    8. dir = 180;
    9. }
    10. }



    Dafür habe ich dir mein Skript hochgeladen. Da ist alles drinne...

    EDIT: Programer, das habe ich vor kurzem schon mal jemandem erklärt!

    Aber nun zeige ich dir mal wie man das Schussproblem professionell löst. Wenn du genau nach der Anleitung gehst, dann klappt es!

    Im Spielerobject (player z. B.)

    Mache ein Create-Event!

    Dort fügst du folgenden Code ein:

    GML-Quellcode

    1. {
    2. HorDirection=0
    3. VerDirection=0
    4. }


    Dann im Step-Event:

    GML-Quellcode

    1. {
    2. BinCheck = 0;
    3. if(keyboard_check(vk_up))
    4. BinCheck += 1;
    5. if(keyboard_check(vk_right))
    6. BinCheck += 2;
    7. if(keyboard_check(vk_down))
    8. BinCheck += 4;
    9. if(keyboard_check(vk_left))
    10. BinCheck += 8;
    11. switch(BinCheck)
    12. {
    13. case 1: //oben
    14. HorDirection = 0;
    15. VerDirection = -1;
    16. break;
    17. case 2: //rechts
    18. HorDirection = 1;
    19. VerDirection = 0;
    20. break;
    21. case 3: //Oben rechts
    22. HorDirection = 1;
    23. VerDirection = -1;
    24. break;
    25. case 4: //unten
    26. HorDirection = 0;
    27. VerDirection = 1;
    28. break;
    29. case 6: //rechts unten
    30. HorDirection =1;
    31. VerDirection = 1;
    32. break; case 8: //links
    33. HorDirection = -1;
    34. VerDirection = 0;
    35. break;
    36. case 9: //links oben
    37. HorDirection = -1;
    38. VerDirection = -1;
    39. break;
    40. case 12: //links unten
    41. HorDirection = -1;
    42. VerDirection = 1;
    43. break;
    44. default:
    45. break;
    46. }
    47. if(BinCheck == 0)
    48. { hspeed = HorDirection * 2; vspeed = HorDirection * 2; }
    49. }
    Alles anzeigen


    Dann im press-Space-Event (da mußt du den Space-Event nehmen mit dem roten Pfeil)-oder wenn du die A-Taste haben willst, dann halt die A-Taste mit dem roten Pfeil:

    Set Alarm[0] to 2

    Im Alarm-Event:

    GML-Quellcode

    1. {
    2. instance=instance_create(player.x,player.y,schuss);
    3. instance.vspeed = VerDirection * 8;
    4. instance.hspeed = HorDirection * 8;
    5. }


    Wobei player.x und player.y halt dein spielerobject ist und schuss deine Pistolenkugel.

    Wenn die Kugel nicht mittig ist, dann mußt du noch ein paar Zahlen ändern!

    z. B.
    {
    instance=instance_create(player.x+10,player.y+20,schuss);
    instance.vspeed = VerDirection * 8;
    instance.hspeed = HorDirection * 8;
    }
    Was man mit Händen baut, kann auch mit Händen zerstört werden...

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

  • Original von Progamer
    Sorry. Deine Anleitung ist cool, aber irgendwie klappt es noch nicht. Kannst du dir ja mal angucken.


    Waren ein paar falsche Einstellungen von dir. Macht nix. Hier die
    neue Datei:

    taste
    Was man mit Händen baut, kann auch mit Händen zerstört werden...
  • Okey das mit den Schuss funzt, jetzt dreht aber die Steurung durch. Wenn man nach rechts und dann nach links läuft, dann geht die Figur voll ab. Mir reicht es ja wenn die Figur nach oben, unten , links und nach rechts laufen würde.
    Wem die Scheiße bis zum Hals steht, der sollte den Kopf nicht hängen lassen.
  • Original von Progamer
    Okey das mit den Schuss funzt, jetzt dreht aber die Steurung durch. Wenn man nach rechts und dann nach links läuft, dann geht die Figur voll ab. Mir reicht es ja wenn die Figur nach oben, unten , links und nach rechts laufen würde.


    Ich habe die Steuerung nun so eingestellt. Das Steuerskript habe ich aber gelöscht. Hätte man auch lassen können, aber ich nehme lieber meine Codemethode...

    taste
    Was man mit Händen baut, kann auch mit Händen zerstört werden...
  • okey das war wohl zu früh, denn bei mein Spiel soll man nur nach oben, unten, links und rechts laufen und schießen können(nicht nach oben links, oben rechts...). Hat einer eine Idee wie man das lösen kann?
    Wem die Scheiße bis zum Hals steht, der sollte den Kopf nicht hängen lassen.
  • Original von - Kev -
    Wie wärs mit der Möglichkeit im Keyevent das D&D Symbol für die gewünschte Richtung zu benutzen und im "Tasteloslas" Event wieder stoppst... >,< code weiß ich grad nich :P


    Das Problem an der Sache ist, wenn man die Taste oben+links drückt, läuft er schräg. Eigentlich kann man sowas nur mit einer Abfrage, in etwa so:

    if keyboard_check(vk_left) && keyboard_check(vk_up)
    HorDirection=-1
    VerDirection=0

    Aber dann muß man sich halt für eine Richtung entscheiden. Andere Lösung habe ich momentan auch nicht...
    Was man mit Händen baut, kann auch mit Händen zerstört werden...