我想做一个小小的pacman游戏来训练我的JavaScript技能。为了移动pacman,我使用与移动功能相关的onkeyup事件函数。警报弹出后没有返回焦点到浏览器
我仍然有问题。每当pacman死亡(或游戏结束)时,我总是使用警告框来提醒用户发生了什么。尽管如此,在按下OK按钮让pacman再次移动之后,我必须点击浏览器窗口才能响应键盘事件。
不知怎的,我相信这是一个窗口焦点问题,仍尝试使用一些焦点(主要在警告框之后),而且似乎没有办法。
有人可以给我一般指针什么可能是解决方案吗?
PS:在游戏构造中,我使用的是动态创建的图像,在页面上只有2个带有ID的文本标签。
编辑:在的onkeyup相关联的代码:
功能muda_sentido(事件) {
//baixo if(event.keyCode == 40) { pacman_status = status[2]; imagem_pacman.src = "Imagens/pacmanb.gif"; imagens[pacman_pos[0]][pacman_pos[1]].src = "Imagens/pacmanb.gif"; } //direita else if(event.keyCode == 39) { pacman_status = status[0]; imagem_pacman.src = "Imagens/pacmand.gif"; imagens[pacman_pos[0]][pacman_pos[1]].src = "Imagens/pacmand.gif"; } //cima else if(event.keyCode == 38) { pacman_status = status[3]; imagem_pacman.src = "Imagens/pacmanc.gif"; imagens[pacman_pos[0]][pacman_pos[1]].src = "Imagens/pacmanc.gif"; } //esquerda else if(event.keyCode == 37) { pacman_status = status[1]; imagem_pacman.src="Imagens/pacmane.gif" imagens[pacman_pos[0]][pacman_pos[1]].src = "Imagens/pacmane.gif"; }
}
html正文内容是双H2标签(可以不加它代码格式导致它出现在预览器上)每个ID都有一个ID。
和周围的节目,我有类似:
警报( “吃豆子死了!”)
而且问题是在这之后。
2编辑:设法抓住了一段代码,位于提示框(只是改变了,现在看它在只有一个地方):
功能pacman_morreu() {
alert("O pacman morreu!");
if(pacman_vidas==0)
{
alert("Game Over!");
reinicia_tabuleiro();
}
else
{
pacman_vidas--;
vidas.innerHTML = "Número de vidas: "+ pacman_vidas;
}
pintaEcra();
}
代码中列出的功能只会做矩阵操作操作(没有什么特别的)。
编辑3:按照要求,这里有云:
功能reinicia_tabuleiro(){
pacman_vidas = 3;
vidas.innerHTML = "Número de vidas: 3";
pontuacao.innerHTML = "Pontuação: 0";
pontos = 0;
for(i=1;i<24;i++)
{
for(j=1;j<24;j++)
{
if(tabuleiro[i][j] == 0)
tabuleiro[i][j] = 2;
}
}
}
你能为此发布js代码吗? – 2011-04-14 00:23:31
你的'onkeyup'事件绑定到'window'吗? – Eliasdx 2011-04-14 00:23:58
和你的w/e你的onkeyup事件的html与 – 2011-04-14 00:29:42