Javascript 音频输入移相器?
我正在设计一个游戏,玩家将得到4种声音,他们必须猜测这些声音的共同点。它的工作原理与“4图1字”游戏完全相同,但玩家必须猜测声音,而不是图片 用户必须按1、2、3和4键才能听到声音。一旦玩家听到这些声音,玩家就必须猜测这些声音的共同点。我该如何对播放器听到4的声音后输入单词进行猜测的部分进行编码 作为一个在一级的例子,玩家将得到猫,狗,鹦鹉和仓鼠的声音,并猜测四种声音之间的共同点。玩家在听到声音后会被告知单词由3个字母组成,他们必须猜出是什么。如果让玩家插入字母“E”,则“E”将插入缺少的单词中,玩家需要猜测剩余的单词。正确的词语是“宠物”。如何在Phaser中对其进行编码 (顺便说一句,游戏没有图形或动画,因为它是为盲人用户设计的) 我在“if(game.input.keyboard.isDown(Phaser.keyboard.p){行中收到错误消息“uncaughtsyntaxerror:意外的令牌{” 在听到这四种声音后,我仍在尝试播放的输入不起作用。我不知道哪里出了问题 我的代码:Javascript 音频输入移相器?,javascript,audio,phaser-framework,Javascript,Audio,Phaser Framework,我正在设计一个游戏,玩家将得到4种声音,他们必须猜测这些声音的共同点。它的工作原理与“4图1字”游戏完全相同,但玩家必须猜测声音,而不是图片 用户必须按1、2、3和4键才能听到声音。一旦玩家听到这些声音,玩家就必须猜测这些声音的共同点。我该如何对播放器听到4的声音后输入单词进行猜测的部分进行编码 作为一个在一级的例子,玩家将得到猫,狗,鹦鹉和仓鼠的声音,并猜测四种声音之间的共同点。玩家在听到声音后会被告知单词由3个字母组成,他们必须猜出是什么。如果让玩家插入字母“E”,则“E”将插入缺少的单词中
var game = new Phaser.Game(400,490, Phaser.AUTO, 'gameDiv');
var key1;
var key2;
var key3;
var key4;
var speech;
var level1;
var PCorrect;
var ECorrect;
var TCorrect;
var TryAgain;
var mainState = {
preload: function() {
game.stage.backgroundColor ='#71c5cf'
game.load.audio('the_intro', 'assets/speech_intro.wav');
game.load.audio('start', 'assets/cat_meow.wav');
game.load.audio('second', 'assets/dog_bark.wav');
game.load.audio('third', 'assets/mouse_squeak.wav');
game.load.audio('fourth', 'assets/parrot.wav');
game.load.audio('default' , 'assets/wrong_key.wav');
game.load.audio('levelPet' , 'assets/GuessPet.wav');
game.load.audio('P', 'assets/PforPet.wav');
game.load.audio('T', 'assets/TforPet.wav');
game.load.audio('E', 'assets/EforPet.wav');
game.load.audio('Try','assets/WrongAnswer.wav');
},
create: function() {
//introduction narration
speech = game.add.audio('the_intro');
speech.play();
//Sound added 1st
this.meowSound = game.add.audio('start');
this.barkSound = game.add.audio('second');
this.softSound = game.add.audio('third');
this.talkingSound = game.add.audio('fourth');
this.noSound = game.add.audio('default');
//Call the sound when the key is pressed
var self = this;
game.input.keyboard.onDownCallback = function(e) {
var keycode = e.keycode || e.which;
switch(keycode) {
case Phaser.Keyboard.ONE:
self.addCat();
break;
case Phaser.Keyboard.TWO:
self.addDog();
break;
case Phaser.Keyboard.THREE:
self.addMouse();
break;
case Phaser.Keyboard.FOUR:
self.addParrot();
level1 = game.add.audio('levelPet');
level1.play();
break;
default:
self.addOthers();
break;
break;
}
}
},
update: function(){
this.PLevel1 = game.add.audio('P');
this.ELevel1 = game.add.audio('E');
this.TLevel1 = game.add.audio('T');
this.WrongAns = game.add.audion('Try');
var self = this;
if (acceptInput) {
if (game.input.keyboard.isDown(Phaser.Keyboard.P) {
self.addP();
} else if (game.input.keyboard.isDown(Phaser.Keyboard.E)) {
self.addE();
} else if (game.input.keyboard.isDown(Phaser.Keyboard.T)) {
self.addT();
}
else
{
self.addWrong();
}
}
}
addCat: function() {
this.meowSound.play();
},
addDog: function() {
this.barkSound.play();
},
addMouse: function() {
this.softSound.play();
},
addParrot: function() {
this.talkingSound.play();
},
addOthers: function() {
this.noSound.play();
},
addP: function() {
this.PLevel1.play();
}
addE: function() {
this.ELevel1.play();
}
addT: function() {
this.TLevel1.play();
}
addWrong: function() {
this.WrongAns.play();
}
};
game.state.add('main', mainState);
game.state.start('main');
我建议您不要听特定键,而是听所有键。您可以使用
键盘.addCallbacks
方法来听。签名如下:
/**
*向键盘处理程序添加回调,以便每次按下或释放键时,回调都会被激活。
*
*@method Phaser.Keyboard#addCallbacks
*@param{Object}context-运行回调的上下文。
*@param{function}[onDown=null]-每次按下键时都会调用此回调。
*@param{function}[onUp=null]-每次释放密钥时都会调用此回调。
*@param{function}[onPress=null]-每次引发onkeypress事件时都会调用此回调。
*/
addCallbacks:函数(上下文、onDown、onUp、onPress){
您只需要了解onPress事件,就可以执行以下操作:
game.input.keyboard.addCallbacks(this,null,null,keyPress);
其中,
keyPress
是按键时调用的函数名。此函数将以字符串形式发送被按下的字符。因此,在该函数中,如果您正在从播放器中查找单词PET,您可以检查按键是否为p、E或T,并相应地高亮显示。这是一个工作检查我为您准备的示例:我建议您不要听特定的键,而是听所有的键。您可以使用键盘。addCallbacks
方法执行此操作。签名如下:
/**
*向键盘处理程序添加回调,以便每次按下或释放键时,回调都会被激活。
*
*@method Phaser.Keyboard#addCallbacks
*@param{Object}context-运行回调的上下文。
*@param{function}[onDown=null]-每次按下键时都会调用此回调。
*@param{function}[onUp=null]-每次释放密钥时都会调用此回调。
*@param{function}[onPress=null]-每次引发onkeypress事件时都会调用此回调。
*/
addCallbacks:函数(上下文、onDown、onUp、onPress){
您只需要了解onPress事件,就可以执行以下操作:
game.input.keyboard.addCallbacks(this,null,null,keyPress);
其中,
keyPress
是按键时调用的函数名。此函数将以字符串形式发送被按下的字符。因此,在该函数中,如果您正在从播放器中查找单词PET,您可以检查按键是否为p、E或T,并相应地高亮显示。这是一个工作检查我为您准备的示例:我建议您不要听特定的键,而是听所有的键。您可以使用键盘。addCallbacks
方法执行此操作。签名如下:
/**
*向键盘处理程序添加回调,以便每次按下或释放键时,回调都会被激活。
*
*@method Phaser.Keyboard#addCallbacks
*@param{Object}context-运行回调的上下文。
*@param{function}[onDown=null]-每次按下键时都会调用此回调。
*@param{function}[onUp=null]-每次释放密钥时都会调用此回调。
*@param{function}[onPress=null]-每次引发onkeypress事件时都会调用此回调。
*/
addCallbacks:函数(上下文、onDown、onUp、onPress){
您只需要了解onPress事件,就可以执行以下操作:
game.input.keyboard.addCallbacks(this,null,null,keyPress);
其中,
keyPress
是按键时调用的函数名。此函数将以字符串形式发送被按下的字符。因此,在该函数中,如果您正在从播放器中查找单词PET,您可以检查按键是否为p、E或T,并相应地高亮显示。这是一个工作检查我为您准备的示例:我建议您不要听特定的键,而是听所有的键。您可以使用键盘。addCallbacks
方法执行此操作。签名如下:
/**
*向键盘处理程序添加回调,以便每次按下或释放键时,回调都会被激活。
*
*@method Phaser.Keyboard#addCallbacks
*@param{Object}context-运行回调的上下文。
*@param{function}[onDown=null]-每次按下键时都会调用此回调。
*@param{function}[onUp=null]-每次释放密钥时都会调用此回调。
*@param{function}[onPress=null]-此回调处于