Javascript 如何在我的乒乓球游戏中找到bug?
我正在做一个游戏,Pong,我试图让球从球拍上弹起,但它不起作用。相反,它正在做“重新设置游戏”的事情。我在Javascript 如何在我的乒乓球游戏中找到bug?,javascript,Javascript,我正在做一个游戏,Pong,我试图让球从球拍上弹起,但它不起作用。相反,它正在做“重新设置游戏”的事情。我在控制台中输入了日志,查看它什么时候不工作,并发现它没有执行if语句,它直接进入else语句,即使我正在做应该触发if语句的事情 顺便说一句,我使用的是JavaScript,它没有说控制台中有任何错误,我只是用谷歌打开它 以下是代码: <html> <h3>- - - - - - - - - - - - - - - - - - - - - - - - - -
控制台中输入了日志,查看它什么时候不工作,并发现它没有执行if
语句,它直接进入else
语句,即使我正在做应该触发if
语句的事情
顺便说一句,我使用的是JavaScript,它没有说控制台中有任何错误,我只是用谷歌打开它
以下是代码:
<html>
<h3>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PONG- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</h3>
<canvas id="gameCanvas" width="800" height="600"></canvas>
<script>
var canvas;
var canvasContext;
var ballX = 50;
var ballY = 50;
var ballSpeedX = 11;
var ballSpeedY = 5;
var playerPaddleY = 240;
const paddleHeight = 120;
function calculateMousePos(evt) {
var rect = canvas.getBoundingClientRect();
var root = document.documentElement;
var mouseX = evt.clientX - rect.left - root.scrollLeft;
var mouseY = evt.clientY - rect.top - root.scrollTop;
return {
x:mouseX,
y:mouseY
};
}
window.onload = function() {
canvas = document.getElementById('gameCanvas');
canvasContext = canvas.getContext('2d');
var framesPerSecond = 30;
setInterval(function() {
moveEverything();
drawEverything();
}, 1000/framesPerSecond );
canvas.addEventListener('mousemove',
function(evt) {
var mousePos = calculateMousePos(evt);
playerPaddleY = mousePos.y- (paddleHeight/2);
});
}
function ballReset() {
ballX = canvas.width/2;
ballY = canvas.height/2;
ballSpeedX = -ballSpeedX;
}
function moveEverything() {
ballX = ballX + ballSpeedX;
ballY = ballY + ballSpeedY;
if (ballX > canvas.width) {
ballReset();
}
if(ballX < 0) {
console.log("hello");
if(ballY > playerPaddleY && ballY < paddleHeight) {
console.log("hellooo");
ballSpeedX = -ballSpeedX;
}
else {
console.log("helloooooo");
ballReset();
}
}
if(ballY > canvas.height) {
ballSpeedY = -ballSpeedY;
}
if(ballY < 0) {
ballSpeedY = -ballSpeedY;
}
}
function drawEverything() {
canvasContext.fillStyle = 'black';
canvasContext.fillRect(0,0,canvas.width,canvas.height);
canvasContext.fillStyle = 'white';
canvasContext.fillRect(0, playerPaddleY, 13, paddleHeight); // player
canvasContext.fillRect(785, 240, 13, 120); //computer player
canvasContext.beginPath();
canvasContext.arc(ballX, ballY, 10, 0,Math.PI*2, true); //ball
canvasContext.fill();
}
</script>
</html>
-————————————————————————————————————————————————————————————-
var帆布;
var canvasContext;
var ballX=50;
var-ballY=50;
var-ballSpeedX=11;
var=5;
var playerPaddleY=240;
恒桨高度=120;
函数calculateMousePos(evt){
var rect=canvas.getBoundingClientRect();
var root=document.documentElement;
var mouseX=evt.clientX-rect.left-root.scrollLeft;
var mouseY=evt.clientY-rect.top-root.scrollTop;
返回{
x:鼠标,
y:老鼠
};
}
window.onload=函数(){
canvas=document.getElementById('gameCanvas');
canvasContext=canvas.getContext('2d');
var framesPerSecond=30;
setInterval(函数(){
移动一切();
抽屉物品();
},1000/帧每秒);
canvas.addEventListener('mousemove',
功能(evt){
var mousePos=calculateMousePos(evt);
PlayerPadley=mousePos.y-(桨叶高度/2);
});
}
函数ballReset(){
ballX=画布宽度/2;
ballY=canvas.height/2;
ballSpeedX=-ballSpeedX;
}
函数moveEverything(){
ballX=ballX+ballSpeedX;
巴利=巴利+巴利;
如果(球>画布宽度){
ballReset();
}
if(ballX<0){
console.log(“你好”);
如果(球>球员帕德利&球<桨叶高度){
控制台日志(“helloo”);
ballSpeedX=-ballSpeedX;
}
否则{
console.log(“hellooooo”);
ballReset();
}
}
如果(球>画布高度){
鲍尔斯皮蒂=-鲍尔斯皮蒂;
}
if(ballY<0){
鲍尔斯皮蒂=-鲍尔斯皮蒂;
}
}
函数drawerything(){
canvasContext.fillStyle='black';
canvasContext.fillRect(0,0,canvas.width,canvas.height);
canvasContext.fillStyle='white';
canvasContext.fillRect(0,PlayerPadley,13,桨高);//玩家
canvasContext.fillRect(785240,13120);//计算机播放器
canvasContext.beginPath();
canvasContext.arc(ballX,ballY,10,0,Math.PI*2,true);//ball
canvasContext.fill();
}
这是一行
if(ballY > playerPaddleY && ballY < paddleHeight) {
if(ballY>playerPaddleY&&ballY
你想换成什么
if((ballY > playerPaddleY) && (ballY < (playerPaddleY + paddleHeight))) {
if((巴利>玩家帕德利)和&(巴利<(玩家帕德利+桨叶高度))){
如果您console.log()ballY、PlayerPadley和PaileHeight,很明显您当前正在将ballY位置与挡板的像素高度进行比较,这显然是失败的。商标大写;拼写;语法;降噪。