Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 存储随机生成器中的值_Javascript_Random - Fatal编程技术网

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

我对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 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
上,因此将颜色函数放置在两个块上。