Willibergi
Mitglied
Moin,
ich habe mal wieder ein Problem.
Ich möchte verschiedene Sounds wiedergeben und abfragen, ob und bei welchem Sound der Benutzer auf die Leertaste drückt.
Zuerst einmal:
Und hier die Funktion bei einem Tastendruck:
Ich habe bei diesem Code ein Problem:
Wenn der Benutzer bei einem Quak-Sound nicht drückt, sollte eigentlich der Zähler für speicher.ausgelassen erhöht werden. Wird er aber nicht. Nie.
Könnt ihr mir sagen, warum?
Danke schon mal!
LG Willibergi
PS:
Wer sich den Code mal in Aktion ansehen möchte, kann das hier tun: http://bit.ly/2287PGz
(Die Codeauszüge sind ganz unten und auch gekennzeichnet durch Kommentare)
ich habe mal wieder ein Problem.
Ich möchte verschiedene Sounds wiedergeben und abfragen, ob und bei welchem Sound der Benutzer auf die Leertaste drückt.
Zuerst einmal:
- Es sind alle Variablen definiert.
- Die Funktion randsplice() löscht ein Element aus einem Array und gibt genau das zurück.
- Das Array sounds[] sieht anfangs so aus: ["q", "q", "q", "q", "q", "m", "m", "m", "w", "w"];
- Das Objekt speicher enthält richtig, falsch und ausgelassen, die alle den Anfangswert 0 haben.
Code:
function neuerSoundN(){
if(sounds.length > 0){
item = sounds.randsplice();
if(sounds.length == 0){ justGet0 = true }
var sound = item == "q" ? quak : (item == "m" ? muh : (item == "w" ? wuff : console.error("FEHLER!")));
sound.play();
switch(item){
case "q":
quakS = true;
muhS = false;
wuffS = false;
break;
case "m":
quakS = false;
muhS = true;
wuffS = false;
break;
case "w":
quakS = false;
muhS = false;
wuffS = true;
break;
}
sound.onended = function(){
if(!pressed && quakS){
speicher.ausgelassen++;
}
pressed = false;
if(sounds.length > 0){
neuerSoundN();
}else{
//Daten werden ausgegeben
}
}
}
}
Code:
window.addEventListener('keydown', function(e){
if(!pushed){
switch(e.keyCode){
case 32:
if(item == "q"){
speicher.richtig++;
quak.stop();
neuerSoundN();
}else if(item == "m" || item == "w"){
speicher.falsch++;
}
pressed = true;
if(justGet0){
justGet0 = false;
}
}
pushed = true;
}
});
Wenn der Benutzer bei einem Quak-Sound nicht drückt, sollte eigentlich der Zähler für speicher.ausgelassen erhöht werden. Wird er aber nicht. Nie.
Könnt ihr mir sagen, warum?
Danke schon mal!
LG Willibergi
PS:
Wer sich den Code mal in Aktion ansehen möchte, kann das hier tun: http://bit.ly/2287PGz
(Die Codeauszüge sind ganz unten und auch gekennzeichnet durch Kommentare)