Javascript 存储随机生成器中的值
我对javascript还是新手。 我正在这里编写javascript教程 其中一个更具挑战性的练习是,当球从墙上弹起时,让它改变颜色。到目前为止,我设法做到了这一点:Javascript 存储随机生成器中的值,javascript,random,Javascript,Random,我对javascript还是新手。 我正在这里编写javascript教程 其中一个更具挑战性的练习是,当球从墙上弹起时,让它改变颜色。到目前为止,我设法做到了这一点: var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); var x = canvas.width/2; var y = canvas.height-30; var dx = 2; var dy = -2; var b
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var x = canvas.width/2;
var y = canvas.height-30;
var dx = 2;
var dy = -2;
var ballRadius = 10;
function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
function ballColor(){
var newColor = getRandomColor();
return newColor;
}
function drawBall(){
ctx.beginPath();
ctx.arc(x, y, ballRadius, 0, Math.PI*2);
ctx.fillStyle=ballColor();
ctx.fill();
ctx.closePath();}
function draw(){
ctx.clearRect(0,0,canvas.width,canvas.height);
drawBall();
x += dx;
y += dy;
if(y+dy>canvas.height-ballRadius||y+dy<ballRadius){
dy = -dy;
}
if(x+dx>canvas.width-ballRadius||x+dx<ballRadius){
dx = -dx;}
};
setInterval(draw,30);
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;
函数getRandomColor(){
变量字母='0123456789ABCDEF';
var color='#';
对于(变量i=0;i<6;i++){
颜色+=字母[Math.floor(Math.random()*16)];
}
返回颜色;
}
函数ballColor(){
var newColor=getRandomColor();
返回新颜色;
}
函数{
ctx.beginPath();
弧(x,y,球半径,0,数学PI*2);
ctx.fillStyle=ballColor();
ctx.fill();
ctx.closePath();}
函数绘图(){
clearRect(0,0,canvas.width,canvas.height);
牵引杆();
x+=dx;
y+=dy;
如果(y+dy>canvas.height ballRadius | | y+dycanvas.width ballRadius | | x+dx只需为颜色创建另一个全局变量。下面是一个快速重构:
var canvas=document.getElementById(“myCanvas”);
ctx=canvas.getContext(“2d”),
x=画布宽度/2,
y=画布高度-30,
dx=2,
dy=-2,
球半径=10,
color=getRandomColor();
函数getRandomColor(){
变量字母='0123456789ABCDEF';
var color='#';
对于(变量i=0;i<6;i++){
颜色+=字母[Math.floor(Math.random()*16)];
}
返回颜色;
}
函数{
ctx.beginPath();
ctx.弧(x,y,球半径,0,数学PI*2);
ctx.fillStyle=颜色;
ctx.fill();
ctx.closePath();
}
函数绘图(){
clearRect(0,0,canvas.width,canvas.height);
牵引杆();
x+=dx;
y+=dy;
如果(y+dy>canvas.height-ballRadius | | y+dycanvas.width-ballRadius | | x+dx
冲突发生在dx=-dx
和dy=-dy
上,因此将颜色函数放置在两个块上。