in vier richtungen schlagen

  • GM 7

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

  • in vier richtungen schlagen

    Hallihallo!

    Ich habe eine kurze Frage:
    In meinem Spiel kann der Held in vier verschiedene Richtungen gehen: links (a), rechts (d), hinter (w), vor (s).
    dabei habe ich für jede richtung einen eigens animierten sprite.
    jetzt habe ich auch für seine "schlagen-attacke" für jede richtung einen eigenen sprite. Wie löse ich das jetzt, dass mein held auf space auch in die jeweiligen richtungen schlägt?

    Danke schonmal für die antwort :)
    mfG
  • Hatte schonmal so ein ähnliches Projekt gemacht und hab's einfach mit Variablen gemacht.

    Wenn der Held nach rechts geht -> Mach Variable "rechts" auf 1 und dafür "links" "oben" "unten" auf 0
    Dann machst du einfach bei der Schusstaste: If "rechts" = 1 dann schiess nach oben

    Und das gleiche machst du dann eben auch noch mit allen anderen Richtungen.

    Hoffe du verstehst das so und kennst dich mit dem GM schon genügend aus, um das Problem zu lösen :D

    Viel Glück noch beim Projekt! :thumbsup:
  • 1.

    Als ich das damals gemacht hatte, hab ich Keyboard -> Und dann Die Taste anstatt von key pressed oder key released benutzt.


    2.
    Zu der Endlosschleife... Kannst du das noch genauer beschreiben?
    Vielleicht kann ich dir auch noch mein altes Projekt schicken, würde aber etwas dauern, da ich das Projekt stark umbearbeiten müsste, aufgrund Sounds, die ich nicht veröffentlichen darf... Deshalb möchte ich es dir, wenn es geht, mit einfachem Erklären irgendwie beibringen ^^

    Erklär mir das mit der Endlosschleife nochmal, kann dir bestimmt helfen.
  • ok klar ((:
    ich habe die variablen wie du gesagt hast, genau so festgelegt (forward,back,left,right).
    Des Weiteren habe ich auch die Variablen in den bewegungseventen verändert (also wenn ich zB links (a) drücke: set variable left to 1; set variable right to 0; set variable forward to 0; set variable back to 0)
    im Space key_released event gibt es dann die vier variablen abfragen. als wenn variable left = 1, dann wird die animation "schlaglinks" angefordert etc...
    jetzt besteht aber eben das problem, dass diese animation in endlosschleife weiterläuft, wenn ich space gedrückt habe, es sei denn, ich bewege meine figur wieder, dann hört sie natürlich auf.
    jetzt bräuchte ich aber, pro einmal space gedrückt, führt sie einmal die animation schlagen aus und hört dann wieder auf.
  • Dann mach noch eine zusätzliche Variable, die sich auf 1 setzt, sobald du die Schusstaste drückst.
    Zusätzlich machst du noch einen Timer rein, der startet, sobald du die Leertaste drückst, welcher diese Variable (Damit man wieder schiessen kann) auf 0 zurücksetzt, sobald die Zeit abgelaufen ist.


    Weiteres Problem ist nun:
    Man könnte den Timer ja mehrmals starten, wodurch alles spinnt.. :vogel:

    Lösung:
    Alle Aktionen bei Leertaste werden nur ausgeführt, wenn NOCH eine Variable (z.B: Spacecheck) auf 0 ist.
    Sobald man allerdings Space gedrückt hat, kommt dann ganz unten, dass Spacecheck auf 1 gesetzt wird, damit man ja nicht Space mehrmals drücken kann.


    Hoffe das ist verständlich so - Wenn ich mir so ansehe, was ich da geschrieben hat, bin ich irgendwie verwirrt. 8|

    Edit:
    Hier nochmal in vereinfachter Form. (1 Variable reicht ja doch - Ich Doofi)

    Also.
    Variable machen, die für die ganze Taste steht.
    Also wenn die nich 0 ist, läuft gar nichts.
    Am Ende aller Events wird diese Variable auf 1 gesetzt.
    Nachdem der Timer abgelaufen ist, der sich in Space zusätzlich noch befindet, wird die Variable zurückgesetzt.

    Hoffe das stimmt jetzt so... Wenn nicht.. Bin noch lange da :D

    Edit 2:
    Arbeite grade parallel auch an 'nem Projekt.
    Sollte was nicht zusammen passen, liegt das daran, weil ich etwas verwirrt bin.

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

  • Ach so meinst du das...
    Öhm... Ja klar -

    Ich hab das damals glaub so gemacht, dass die Animation ein Objekt an sich war.

    Hab einfach den Charakter gelöscht, ersetzt mit der Animation und dann bei dem "Animation End-Event" (Irgendwo links, sowas ähnliches gabs da) -> lösche Animation und create instance of (Normaler Charakter) at x0,y0 (relative)


    Meinst du, das klappt so?
  • Benutzer online 1

    1 Besucher