使用按钮作为javascript游戏的触摸屏控件

使用按钮作为javascript游戏的触摸屏控件,javascript,html,onclick,Javascript,Html,Onclick,我正在制作一个网页,这只是一个休息的地方,我的很多用户都在触摸屏上,所以我试图在游戏中实现触摸屏控制,但它不起作用,我一辈子都不知道为什么。箭头键控件仍然有效,但按钮无效 函数playGame(){var canvas=document.getElementById(“myCanvas”); var ctx=canvas.getContext(“2d”); var x=canvas.width/2; 变量y=画布高度-30; var-dx=2; var-dy=-2; var-ballRadi

我正在制作一个网页,这只是一个休息的地方,我的很多用户都在触摸屏上,所以我试图在游戏中实现触摸屏控制,但它不起作用,我一辈子都不知道为什么。箭头键控件仍然有效,但按钮无效


函数playGame(){var canvas=document.getElementById(“myCanvas”);
var ctx=canvas.getContext(“2d”);
var x=canvas.width/2;
变量y=画布高度-30;
var-dx=2;
var-dy=-2;
var-ballRadius=10;
高度=10;
宽度=75;
var-pallex=(canvas.width-pallewidth)/2;
var-rightspressed=false;
var leftPressed=false;
风险值难度=10
风险值得分=0
var gameRunning=false
var=false
函数pailemoveleft(){pailex-=5;
如果(叶片x<0){
x=0;
}}
函数papperMoveRight(){papperX+=5;
如果(划桨X+划桨宽度>画布宽度){
pallex=canvas.width-pallewidth;
}}
函数playPause(){
如果(暂停==真){暂停=假}
else{paused=true}
}
函数{
ctx.beginPath();
弧(x,y,球半径,0,数学PI*2);
ctx.fillStyle=“#0095DD”;
ctx.fill();
ctx.closePath();
}
函数drawblade(){
ctx.beginPath();
ctx.rect(桨x,canvas.height-桨高,桨宽,桨高);
ctx.fillStyle=“#0095DD”;
ctx.fill();
ctx.closePath();
}
函数drawScore(){
ctx.font=“24px”;
ctx.fillStyle=“#0095DD”;
ctx.fillText(“分数:”+分数,8,20);
}
函数绘图(){
如果(暂停===错误){
clearRect(0,0,canvas.width,canvas.height);
牵引杆();
抽桨();
drawScore();
x+=dx;
y+=dy;
如果(x+dx>canvas.width-ballRadius | | x+dx画布高度和半径){
如果(x>桨叶x&&x<桨叶x+桨叶宽度){
dy=-dy;
难度=难度+0.5;
分数=分数+1;
}
否则{
警惕(“游戏结束!你得分”+得分);
clearRect(0,0,canvas.width,canvas.height);
间隔时间;
canvas.style.display='none';
}
}
如果(右键按下){
右键();
}
else if(左键按下){
左移();
}
}
}
文档。addEventListener(“keydown”,keyDownHandler,false);
文件。addEventListener(“keyup”,keyUpHandler,false);
函数keyDownHandler(e){
如果(e.key==“Right”| e.key==“ArrowRight”){
rightspressed=true;
}
else if(e.key==“Left”| | e.key==“ArrowLeft”){
leftPressed=true;
}
}
函数keyUpHandler(e){
如果(e.key==“Right”| e.key==“ArrowRight”){
右压=假;
}
else if(e.key==“Left”| | e.key==“ArrowLeft”){
leftPressed=false;
}
}
var interval=setInterval(绘图,难度);}
左边
正确的

只要打开控制台,它就会告诉您出了什么问题

到目前为止,您可以在html中调用
pailemoveleft
,但它不是全局定义的,因为它在
playGame
方法中