我正在尝试在 jQuery 中创建一个应用程序(我是新手),其中圆圈每秒随机出现在画布中。我在 for 循环中生成它们,但不知道如何在经过一段时间后使它们出现。我尝试使用 setInterval() 和 delay() 但它不起作用(我认为我的语法写得不好)。对不起,如果这个问题太基本了。
这是我的代码:
var canvas, ctx;
var circles = [];
var selectedCircle;
var hoveredCircle;
function Circle(x, y, radius){
this.x = x;
this.y = y;
this.radius = radius;
}
function clear() { // clear canvas function
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
}
function drawCircle(ctx, x, y, radius) { // draw circle function
ctx.fillStyle = 'rgba(255, 35, 55, 1.0)';
ctx.beginPath();
ctx.arc(x, y, radius, 0, Math.PI*2, true);
ctx.closePath();
ctx.fill();
}
$(function(){
canvas = document.getElementById('scene');
ctx = canvas.getContext('2d');
var circleRadius = 15;
var width = canvas.width;
var height = canvas.height;
var circlesCount = 60; // we will draw 60 circles randomly
for (var i=0; i<circlesCount; i++) {
var x = Math.random()*width;
var y = Math.random()*height;
circles.push(new Circle(x,y,circleRadius));
drawCircle(ctx, circles[i].x, circles[i].y, circleRadius);
}
});
谢谢你的帮助!
编辑:这里有几个不起作用的例子:
delay(1000) // after drawing function
drawCircle(ctx, circles[i].x, circles[i].y, circleRadius).delay(1000);
setInterval(drawCircle(ctx, circles[i].x, circles[i].y, circleRadius) {
}, 2000);
drawCircle(ctx, circles[i].x, circles[i].y, circleRadius).delay(1000).setInterval(1000);