Ergebnis 1 bis 20 von 29

Thema: Switch per Tastendruck ändern[2k3]...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Users Awaiting Email Confirmation

    Bevor dem mit dem Fork ging alles einbahnfrei^^

    EDIT:
    Hab noch nen Fehler gefunden aber den kann ich leicht wegmachen...
    (Der kann die Waffe nicht mehr wegpacken)

    Geändert von Riku11 (11.05.2010 um 13:51 Uhr)

  2. #2
    Habs gefunden: Dein Code sah so aus:

    Code:
    Key
    If Key 7
      then
    Switch "Waffe" ON/OF Switcher
      else
    Switch "Waffe" OFF
    Das würde heißen, sobald man ne andere Taste als Shift drückt, wird die Waffe weggesteckt.

  3. #3

    Users Awaiting Email Confirmation

    Ich würde so eine Variante vorschlagen

    Code:
    Key "Shift"
    <>If "Shift" is 7
    <>If Switch "Waffe gezogen" is OFF
    *Code für Waffe Ziehen-Animation etc.*
    <><>Swicth "Waffe Gezogen" set ON
    <>Else
    <><>If Switch 'Waffe gezogen" is ON
    *Code für Waffe Wegstecken-Animation etc.*
    <><><>Switch "Waffe Gezogen" set OFF
    So kannst du eine Animation für das Ziehen und Wegstecken einfügen und evtl. weitere Features de-/aktiveren.

  4. #4
    Ich hätte es hingegen eher so gemacht:

    Code:
    (Parallel Process)
    
    Check Key Input (Taste: Shift, Variable: Taste)       ; Ohne Wait
    If Taste = 7
      then begin
        Toggle ON/OFF Shift_Gedrueckt
        Loop
          If Taste =|= 7
            then Break Loop
          Wait 0.0
        end
      end
    Wait 0.0
    Der Loop in der Mitte verhindert, dass die Taste nochmal aktiviert wird, solange man sie festhält.

    Welche der vorgeschlagenen Varianten du wählst bleibt aber dir überlassen. Funktionieren tun sie alle.

  5. #5
    Das wird nicht funktionieren, weil die Variable nur außerhalb der Schleife abgefragt wird.

  6. #6
    Zitat Zitat von Kelven Beitrag anzeigen
    Das wird nicht funktionieren, weil die Variable nur außerhalb der Schleife abgefragt wird.
    Scharf beobachtet! Ich bin wohll an meine eigene Programmierweise gewöhnt. Da nimmt man irgendwann bestimmte Dinge als selbstverständlich hin, obwohl sie nur bei einem selbst so sind. Ich korrigiere es mal.

    Code:
    (Parallel Process)
    
    Check Key Input (Taste: Shift, Variable: Taste)       ; Ohne Wait
    If Taste = 7
      then begin
        Toggle ON/OFF Shift_Gedrueckt
        Loop
          Check Key Input (Taste: Shift, Variable: Taste)
          If Taste =|= 7
            then Break Loop
          Wait 0.0
        end
      end
    Wait 0.0

  7. #7
    Das ist völlig überkompliziert und unnötig.
    Das hier reicht vollkommen:

    Code:
    Key Input Proc: [0001:Keycode] ( Wait until Key pressed )
    Switch Operation: [0001:Target] ON/OFF Toggle
    Hab es eben nochmal probiert, funktioniert tadellos.
    Wenn das nicht funktioniert, dann muss es anderen Code geben der da mit reinspielt.

    Auf keinen Fall braucht man für sowas ein Wait oder gar eine Schleife.

  8. #8
    Beim Key Input muss dann alles andere außer Shift ausgeschaltet sein, versteht sich.

    Aber RPG Hacker wollte wohl, dass die Waffe so lange gehalten wird, wie man Shift gedrückt hält. Das ist mMn aber zu umständlich, außerdem kann der Maker nur zwei Tasteneingaben gleichzeitig verarbeiten. Man könnte also nicht gleichzeitig bewegen, gedrückt halten und angreifen.

  9. #9
    Zitat Zitat von Kelven Beitrag anzeigen
    ...außerdem kann der Maker nur zwei Tasteneingaben gleichzeitig verarbeiten. Man könnte also nicht gleichzeitig bewegen, gedrückt halten und angreifen.
    Das geht sehr wohl. Zumindest geht es bei mir. Möglicherweise hast du eine andere Version als ich. Als Beleg kannst du dir das Video von meinem Zelda AKS ansehen. Da werden Leertaste, Shift, ESC und die Richtungstasten gleichzeitig abgefragt (und es funktioniert auch, was sich per F9 überprüfen lässt). Muss allerdings betonen, dass das Version 1.51 ist. Ansonsten könnte ich ja die Richtungstasten nicht einzeln abfragen und auch kein diagonales Laufen mit einbauen.

    EDIT: Naja, klar. Wenn man die "Wait until Key pressed"-Methode benutzt, DANN kann man keine zwei Tasten gleichzeitig abfragen. :EDIT

    Zitat Zitat von makenshi Beitrag anzeigen
    Das hier reicht vollkommen
    Ja, wenn man sich mit mittelmäßiger Funktion zufrieden gibt, dann schon.

    Also ich persönlich benutze ja diese Methode:

    Code:
    (Parallel Process)
    
    Check Key Input (Taste: Shift, Variable: Shift)
    If Variable Shift = 7
      then ShiftPressed = ON
      else ShiftPressed = OFF
    
    Check Key Input (Taste: ESC, Variable: ESC)
    If Variable ESC = 6
      then ESCPressed = ON
      else ESCPressed = OFF
    
    [...]
    
    Wait 0.0
    So werden alle Tasten gleichzeitig abgefragt und indem man einfach die Switches abfragt, erkennt man auch ganz leicht, ob eine Taste gedrückt gehalten wird bzw. losgelassen wird. Die eigentlichen KS-Routinen kann man dann ganz leicht in einem anderen Event verarbeíten. So habe ich's bei mir gemacht und so funktioniert es reibungslos. Unnötig ist daran gar nichts, denn wenn man die wahl zwischen "gut" und "mittelmäßig" hat, dann sollte man natürlich "gut" nehmen, auch wenn es komplizierter ist.

  10. #10
    Es kommt natürlich auf die Art des Kampfsystems an. Normalerweise halte ich es bei einem AKS aber gerade für nicht gut, wenn man ständig eine Taste gedrückt halten muss, weil das auf kurz oder lang auf die Muskeln geht. Selbst wenn sich die Tasten dann nicht gegenseitig blockieren, muss man immer noch mit Links auf Shift+Leertaste gleichzeitig drücken. Unbequem.

  11. #11
    Did i touch a nerv? ; )
    Rein objektiv gesehen ist dein Konstrukt unnötig , so leid es mir tut.
    Am Anfang war gefragt das ein Switch umgeschaltet werden soll. Dafür ist deine Konstruktion völlig überkompliziert, es lässt sich in weniger Zeilen mit weniger Aufwand erreichen. Selbst für weiteres lässt sich auf die oben genannte Art und Weise einfacher umschalten.

    Aus der Sicht eines Spielers ist es Blödsinn eine Taste gedrückt zu halten um eine Waffe ausgefahren zu lassen. Das führt allerhöchstens zu Verkrampfungen im betroffenen Finger.

  12. #12
    Von "Waffe ausgefahren lassen" war ja nie die Rede. Ich sagte ja lediglich, dass es auf diese Art und Weise möglich ist, auch die Länge die Drückens abzufragen. So könnte man z.B. eine Wirbelattacke wie in Zelda einbauen. Normale Schläge wären aber trotzdem noch problemlos möglich. Dafür müsste man die Taste nicht gedrückt halten.

    Ja, es mag überkompliziert sein, aber wenn das Überkomplizierte noch besser als das Nicht-Komplizierte funktioniert, wieso sollte man das dann nicht verwenden? Gerade bei einem AKS halte ich es für sinnvoll seine Tastenabfrage von Anfang an sinnvoll zu programmieren, sonst wird es später nur Probleme geben (spätestens dann wenn man Combos oder sowas einbauen will). Genauso wie es zwar leichter wäre, Ressourcen einfach ins RTP zu kopieren statt sie jedes mal zu importieren, man das aber nicht tun sollte, weil es zu Problemen führt. Ich finde das ist hier genau das gleiche. Aber vermutlich hast du Recht und es lässt sich auf diese Art und Weise trotzdem ein vernünftiges AKS machen, wenn man es nur richtig anstellt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •