jQuery erkennt Tastenanschläge und setzt Variablen entsprechend

8

Ich habe in meinem Code ein rudimentäres EasterEgg erstellt, das aktiviert wird, wenn die folgenden Tastenanschläge (nicht gleichzeitig) gemacht werden: Enter + c + o + l + o + r + s mit dem folgenden Code:

%Vor%

Ich muss der Keydown-Funktion Reset-Funktionalität hinzufügen, um alle Variablen zurückzusetzen, wenn etwas anderes als diese Tasten gedrückt werden ... auf diese Weise müssen sie Enter + c + o + l + o + r + s drücken oder die Anweisung wird zurückgesetzt und sie müssen neu beginnen. (Dadurch wird es schwieriger, das 'EasterEgg' zu erreichen [oder zumindest weniger wahrscheinlich durch zufällige Tastenanschläge]].

    
sadmicrowave 02.03.2010, 15:00
quelle

4 Antworten

13

Sie möchten dies auch in der Reihenfolge überprüfen. Im Moment könntest du die Tasten in beliebiger Reihenfolge drücken und trotzdem das Osterei aktivieren. Enter + lorocs zum Beispiel.

Ich würde die gesuchten Werte in der folgenden Reihenfolge speichern:

%Vor%

Dann können Sie einfach verfolgen, wo sich der Benutzer in der Sequenz befindet:

%Vor%

Dadurch wird nextKey jedes Mal erhöht, wenn Sie den nächsten Schlüssel in der Sequenz suchen. Die Variable nextKey beginnt am Index 0, was bedeutet, dass wir nach Enter suchen. Jetzt müssen wir in der Funktion ColorMap auf die Endbedingung prüfen.

%Vor%

Diese Lösung sollte es Ihnen ermöglichen, die spezielle Sequenz in der Variablen keys zu ändern, ohne dass eine Änderung an anderer Stelle im Code erforderlich ist.

BEARBEITEN: Wenn Sie möchten, dass die Antwort zusammenhängend ist, wie Sie es wahrscheinlich tun, können Sie die Variable nextKey zurücksetzen, wenn die Übereinstimmung fehlschlägt.

%Vor%

Für zusätzliche Credits könntest du dies ändern, um eine Zeichenfolge zu verwenden, um das Osterei zu halten, dann String.fromCharCode , um es in den Zeichencode zu konvertieren, den e.which zurückgibt.

    
EndangeredMassa 02.03.2010, 15:14
quelle
3

Ich habe vor kurzem eine ähnliche Easter Egg-Frage beantwortet, also werde ich Sie nur darauf hinweisen.

Es erfordert einen anderen Ansatz als das, was Sie tun, und es muss nicht zurückgesetzt werden.

JavaScript / jQuery Keypress-Protokollierung

BEARBEITEN: Hier ist eine aktualisierte Version, die verhindert, dass der Schlüsselverlauf zu lang wird.

%Vor%     
user113716 02.03.2010 15:15
quelle
0

Nun werden Sie Ihre Benutzer die magischen Tasten in beliebiger Reihenfolge drücken lassen, was nicht sehr viel Spaß machen würde. Ich würde die magische Sequenz in ein Array setzen, und wenn die erfolgreichen Tastenanschläge übereinstimmen, bewegen Sie sich im Array vorwärts. Wenn Sie bis zum Ende kommen, dann ist es Eizeit.

Bearbeiten genau wie @EndomerredMassa schrieb.

    
Pointy 02.03.2010 15:15
quelle
0

Hier ist ein anderer Ansatz:

%Vor%

Es speichert den aktuellen Teil der Farben, die Sie in eine Textbox geschrieben haben, einfach zum Debuggen. Fügen Sie einfach style="display: none;" hinzu, wenn Sie mit dem Testen fertig sind.

    
Nick Craver 02.03.2010 15:22
quelle

Tags und Links