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);