2016-04-03 4 views
-2

Ich versuche ein Spiel zu machen, bei dem die richtige Zahlenkombination dem Spieler einen Effekt gibt, der ihm hilft, das Level zu bestehen. Mein Plan dafür war, if-Anweisungen zu verwenden, um zu testen, ob der Schlüssel gedrückt wurde, und Variablen entsprechend zu ändern. Dies sollte sehr einfach sein, aber meine Versuche sind kläglich gescheitert, während ich keine Seiten finden kann, die dies angemessen erklären. Also, weiß jemand, wie ich den Druck einer Zifferntaste für eine if-Anweisung in Javascript erkennen kann?Das Drücken einer Zifferntaste für eine if-Anweisung erkennen

+1

können Sie den Code, den Sie bisher haben, posten? funktioniert etwas? – JordanHendrix

+0

Diese Bibliothek könnte ein guter Ort sein, um zu beginnen, oder vielleicht sogar Hebelwirkung - https://github.com/namuol/cheet.js – dmoo

+0

Sie sah nicht alles, oder? Ich habe gerade 50 Fragen gefunden und gefunden: http://stackoverflow.com/questions/2297524/javascript-jquery-keypress-logging – JordanHendrix

Antwort

0

Wenn Sie nach einer bestimmten Zahlenfolge suchen, müssen Sie einen Cache verwenden und jeden Tastendruck überprüfen. Hier ist ein Beispiel unten. Ich habe angegeben, dass ich 1, dann 2 und dann 3 in dieser Reihenfolge möchte. Wenn Sie es falsch machen, wird die Sequenz zurückgesetzt. Auch das Ausfüllen wird in diesem Fall zurückgesetzt.

Probieren Sie es aus. Führen Sie es aus und drücken Sie 1, dann 2 und dann 3. Unterbrechen der Sequenz bedeutet, dass Sie neu starten müssen.

//press 1, then 2 then 3 
 
var code = [49, 50, 51] 
 
var cache = []; 
 

 
function checkCode(eve) { 
 

 
    var keycode = eve.keyCode || eve.which; 
 

 
    if(keycode === cache.shift()){ 
 

 
     if(!cache.length){ 
 
     //resets if you did it. do not include if you want once. 
 
     replenishCache(); 
 

 
     //do whatever you do here. 
 
     doThing(); 
 
     } 
 

 
    } else { 
 
     replenishCache(); 
 
    } 
 
} 
 

 
function doThing(){ 
 
    alert('sequence entered'); 
 
} 
 

 
function replenishCache(){ 
 
    cache = code.slice(0); 
 
} 
 

 
replenishCache(); 
 

 
window.addEventListener('keypress', checkCode, false);

Ich will hinzufügen, dass dieser Code nicht völlig im Rahmen eines Rahmens oder eines Moduls oder Muster. Ich habe gerade ein Ereignis an das Fenster angehängt, um es zu veranschaulichen. Sie müssen darüber nachdenken, wie Sie dies in das umsetzen können, was Sie gerade tun. Zum Beispiel, anstatt nur eine globale Funktion direkt doThing in diesem Fall aufrufen - Sie sollten wahrscheinlich, dass in eine Art von Plugin oder Modul. Das gleiche gilt für die Reihenfolge der Zeichencodes.