我正在为 Uni 做一个项目,想用 JavaScript 制作一个代表吉他英雄的小游戏(https://www.gameinformer.com/s3/files/styles/body_default/s3/legacy-images/imagefeed/Reunion %20Tour%3A%20The%20Best%20And%20Worst%20Of%20Guitar%20Hero/Gh3_2D00_337_2D00_610.jpg ) 我一个月前才开始学习 JavaScript,但被画布库吸引,决定用它来做我的项目。
我设法制作了一组圆形对象,每个对象具有不同的速度和 y 位置,并使它们一起出现在屏幕上。
var canvas = document.getElementById("canvas");
var g = canvas.getContext("2d");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
//object
function Circle(x, y, speed, radius){ this.x=x;
this.y=y;
this.speed=speed;
this.radius=radius;
//methods for the object
this.draw = function(){
g.beginPath();
g.arc(this.x, this.y, this.radius, 0, 2 * Math.PI);
g.fill();
g.closePath();
}
this.update = function(){
this.x += this.speed;
this.draw();
}
}
var circleArray = [];
for ( var i=0; i<10; i++){
var stringA = 100;
var stringS = 200;
var stringD = 300;
var stringF = 400;
var array = [stringA, stringD, stringF, stringS];
radius=40;
var x= innerWidth - radius;
var y=array[Math.floor(Math.random() * 4)];
var speed = Math.floor(Math.random() * (10 - 4) ) + 4; //(max-min) + min
speed = -speed;
circleArray.push(new Circle(x, y, speed, radius));
}
function animate() {
requestAnimationFrame(animate);
g.clearRect(0, 0, innerWidth, innerHeight);
//this is where it all went downhill - without setInterval method, it works
setInterval( function(){
for ( var i=0; i< circleArray.length; i++ ){
circleArray[i].update();
}
}, 1000);
//
}
我接下来要做的是让圆形对象一个接一个地出现在屏幕上。最好在随机间隔之后。但是我无法理解 setInterval 方法。我的想法是在内部创建另一个 setInterval 方法,但这似乎不起作用。谁能告诉我如何或指向我的教程?谢谢!
慕娘9325324
达令说
相关分类