javascript - 乒乓球拍不能正确移动
问题描述
我正在制作乒乓球以在 javascript 上变得更好,但是当按下左键时玩家拨片不会移动,如果我按下右键它不会停止向右移动。
我检查了大小写、分号并重新排列了代码,但没有任何改变。
var rightPressed = false;
var leftPressed = false;
var paused = false;
document.addEventListener("keydown", keyDownHandler, false);
document.addEventListener("keyup", keyUpHandler, false);
function keyDownHandler(e) {
if(e.keyCode == 39) {
rightPressed = true;
}
else if(e.keycode == 37) {
leftPressed = true;
}
else if(e.keycode == 32) {
paused = !paused;
}//pauses or unpause game
}
//handles when a key isn't being pushed
function keyUpHandler(e) {
if(e.keycode == 39) {
rightPressed = false;
}//tells our code that right isnt being pressed
else if(e.keyCode == 37) {
leftPressed = false;
}//tells code left isnt being pressed
}
var paddleHeight = 10;
var paddleWidth = 75;
var paddleX = (canvas.width-paddleWidth)/2;
var paddleY = canvas.height-paddleHeight-10;
function drawPaddle() {
ctx.fillRect(paddleX,paddleY,paddleWidth,paddleHeight);
ctx.fillStyle = "white";
}
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
drawBall();
drawPaddle();
if (!paused){//what to do when paused
if (x + dx > canvas.width - ballRadius || x + dx < ballRadius) {
dx = -dx;
}
if (y + dy < ballRadius) {
dy = -dy;
}
if (rightPressed && paddleX < canvas.width-paddleWidth) {
paddleX += 7;
}
else if(leftPressed && paddleX > 0) {
paddleX -= 7;}
x += dx;
y += dy;
//velocity
}
}
当我按下右箭头键时,桨应该向右移动,当我按下左箭头键时向左移动,当我按下空格键时暂停。相反,它不会向左或暂停,也不会停止向右。
解决方案
推荐阅读
- android - 无法在应用程序崩溃的情况下重新签署 Android 系统应用程序(使用 LineageOS)
- php - Paypal 表单 - 如何将字段保存为变量?
- segmentation-fault - 需要有时但不总是会出现分段错误的程序示例
- php - 在 lumen 5.6 应用程序中找不到驱动程序错误(在 docker + alpine linux + nginx + php-fpm 7.2 中运行)
- python - 我可以在任何地方为 python 预编译 webrtcvad?
- python - 赋值意味着指向python中的地址?
- python - 我可以使用 numpy.random 创建一个与已创建的另一个 numpy.random 数组相关的数组吗
- javascript - 元素隐式具有“任何”类型,因为索引表达式不是“数字”类型 [7015]
- sql - 过滤sqlite查询
- r - 如何在 R 的热图函数中交换默认颜色?