2015-12-15 4 views
1

Я не уверен, как заставить мяч отскочить случайно. Каждый раз, когда у меня есть мяч, следующий по заданному пути, но я не уверен, как сделать его случайным. Любая помощь будет оценена! Я изучаю код с помощью javascript, поэтому код может быть немного грязным и не оптимизирован для текущей задачи.Сделать мяч понг-мячик случайным образом

//canvas 
 
var canvas = document.getElementById("myCanvas"); 
 
var ctx = canvas.getContext("2d"); 
 
var x = canvas.width/2; 
 
var y = canvas.height-30; 
 
var context = document.getElementById('myCanvas').getContext("2d"); 
 

 
//config 
 
var paddleHeight = 75; 
 
var paddleWidth = 10; 
 
var paddleX = (canvas.height-paddleHeight)/2; 
 
var paddleX2 = (canvas.height-paddleHeight)/2; 
 
document.addEventListener("keydown", keyDownHandler, false); 
 
document.addEventListener("keyup", keyUpHandler, false); 
 

 
//keyboard controls 
 
var leftPressed = false; 
 
var rightPressed = false; 
 
var aPressed = false; 
 
var dPressed = false; 
 
function keyDownHandler(e) { 
 
\t if(e.keyCode == 37) { 
 
\t \t 
 
\t \t leftPressed=true; 
 
\t \t 
 
\t } 
 
\t 
 
\t if(e.keyCode == 39){ 
 
\t \t 
 
\t \t rightPressed=true; 
 
\t \t 
 
\t } 
 
\t 
 
\t if(e.keyCode == 65){ 
 
\t \t 
 
\t \t aPressed=true; 
 
\t \t 
 
\t } 
 
\t 
 
\t if(e.keyCode == 68){ 
 
\t \t 
 
\t \t dPressed=true; 
 
\t \t 
 
\t } 
 
} 
 
function keyUpHandler(e){ 
 
\t if(e.keyCode == 37){ 
 
\t \t 
 
\t \t leftPressed=false; 
 
\t \t 
 
\t } 
 
\t 
 
\t if(e.keyCode == 39){ 
 
\t \t 
 
\t \t rightPressed=false; 
 
\t \t 
 
\t } 
 
\t 
 
\t if(e.keyCode == 65){ 
 
\t \t 
 
\t \t aPressed=false; 
 
\t \t 
 
\t } 
 
\t 
 
\t if(e.keyCode == 68){ 
 
\t \t 
 
\t \t dPressed=false; 
 
\t \t 
 
\t } 
 
} 
 

 
//moving the paddles 
 
function drawPaddle() { 
 
    ctx.beginPath(); 
 
    ctx.rect(790, paddleX, paddleWidth, paddleHeight); 
 
    ctx.fillStyle = "#0095DD"; 
 
    ctx.fill(); 
 
    ctx.closePath(); 
 
} 
 
function drawPaddle2() { 
 
    ctx.beginPath(); 
 
    ctx.rect(0, paddleX2, paddleWidth, paddleHeight); 
 
    ctx.fillStyle = "#0095DD"; 
 
    ctx.fill(); 
 
    ctx.closePath(); 
 
} 
 

 
//creating and moving the ball 
 
var x = 300 
 
var y = 200 
 
var dx = 2 
 
var dy = 2 
 
var ballRadius = 10 
 
function drawBall(){ 
 
\t ctx.beginPath(); 
 
\t ctx.arc(x,y,ballRadius,0,2*Math.PI); 
 
\t ctx.fillstyle="#0033FF"; 
 
\t ctx.fillStroke="#0033FF"; 
 
\t ctx.Stroke="10" 
 
\t ctx.fill(); 
 
\t ctx.closePath(); 
 
\t } 
 

 

 

 
//drawn objects 
 
function draw() { 
 
    ctx.clearRect(0, 0, canvas.width, canvas.height); 
 
    drawPaddle(); 
 
\t drawPaddle2(); 
 
\t drawBall(); 
 
\t 
 
    if(leftPressed && paddleX < canvas.height-paddleHeight) { 
 
     paddleX += 7; 
 
    } 
 
    if(rightPressed && paddleX > 0) { 
 
     paddleX -= 7; 
 
    } 
 
    if(aPressed && paddleX2 < canvas.height-paddleHeight) { 
 
     paddleX2 += 7; 
 
    } 
 
    if(dPressed && paddleX2 > 0) { 
 
     paddleX2 -= 7; 
 
    } 
 
\t if(x + dx > canvas.width || x + dx < 0) { 
 
\t \t dx = -dx; 
 
\t } 
 
\t if(y + dy > canvas.height || y + dy < 0) { 
 
\t \t dy = -dy; 
 
\t } 
 
    x += dx; 
 
    y += dy; 
 
} 
 

 
setInterval(draw, 10);
/* Canvas */ 
 
body, html { 
 
bgcolor: black; \t 
 
width: 100%; 
 
height: 100%; 
 
margin: 0; 
 
padding: 0; 
 
overflow: hidden; 
 
} 
 

 
img { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    width: 808px; 
 
    height: 408px; 
 
    margin-top: -204px; /* Half the height */ 
 
    margin-left: -404px; /* Half the width */ 
 
} 
 

 
#myCanvas { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    width: 800px; 
 
    height: 400px; 
 
    margin-top: -200px; /* Half the height */ 
 
    margin-left: -400px; /* Half the width */ 
 
}
<html> 
 
<head> 
 
<meta charset="UTF-8"> 
 
<meta name="description" content="Pong Remake"> 
 
<meta name="keywords" content="pong, remake, pong remake, .length, .charAt()"> 
 
<meta name="author" content="Griffin, Kevin"> 
 

 
<title>PONG</title> 
 
</head> 
 

 
<body> 
 

 
<img src="field.png"> 
 

 
<link rel="stylesheet" type="text/css" href="main.css"> 
 

 
<canvas id="myCanvas" width="800" height="400"> 
 

 
<script type="text/javascript" src="game.js"></script> 
 

 
</body> 
 

 
</html>

+1

что вы имеете в виду отскок случайно? – thedarklord47

+0

Я не вижу никакой логики, которая обрабатывает столкновение между веслом и мячом - вот что вам нужно, чтобы получить (по-видимому) случайное движение. Он включает в себя справедливую амплитуду 2-й физики (например, угол и скорость, с которой мяч ударил по лопатке). Я учил детей, как программировать Понг во Flash; Я уверен, что есть где-то учебник. –

ответ

0

вы можете использовать javascript`s Math.random() метод и генерировать случайные значения в пределах [0,1) и умножить его на ограничивающим фактором в соответствии ваш заказ потребности как Math.random() * 12 даст ряд [0,12)

Смежные вопросы