Javascript 使用数组设置画布上对象的动画

Javascript 使用数组设置画布上对象的动画,javascript,html,canvas,Javascript,Html,Canvas,我一直试图通过将一个对象放入数组来设置画布上的对象的动画,但它似乎不起作用 此时仅绘制一个对象,但其思想是向画布添加多个对象,从而形成阵列 我用来绘制和设置对象动画的函数有问题吗 var绘制; 功能画布(画布,ctx){ this.canvas=画布; this.ctx=ctx; } 功能方向(x,y){ 这个.x=x; 这个。y=y; } 函数度量(cW、cH、半径、hR、度、dirX、dirY、度){ this.cW=cW; this.cH=cH; 这个半径=半径; this.hR=hR;

我一直试图通过将一个对象放入数组来设置画布上的对象的动画,但它似乎不起作用

此时仅绘制一个对象,但其思想是向画布添加多个对象,从而形成阵列

我用来绘制和设置对象动画的函数有问题吗

var绘制;
功能画布(画布,ctx){
this.canvas=画布;
this.ctx=ctx;
}
功能方向(x,y){
这个.x=x;
这个。y=y;
}
函数度量(cW、cH、半径、hR、度、dirX、dirY、度){
this.cW=cW;
this.cH=cH;
这个半径=半径;
this.hR=hR;
this.dirX=dirX;
this.dirY=dirY;
这个。度=度;
}
功能图(cW、cH、宽度、高度、半径、hR、颜色){
this.cW=canvas.width;
this.cH=canvas.height;
这个。宽度=宽度;
高度=高度;
该半径=高度/2;
this.hR=宽度-this.radius;
这个颜色=颜色;
this.render=函数(){
ctx.fillStyle=this.color;
ctx.strokeStyle=this.color;
ctx.lineWidth=1;
ctx.save();
ctx.translate(this.x,this.y);
ctx.旋转(该角度*Math.PI/180);
ctx.translate(-this.x,-this.y);
ctx.beginPath();
ctx.moveTo(this.x,this.y);
ctx.lineTo(x+this.hR,this.y);
ctx.arc(this.x+this.hR,this.y+this.radius,this.radius,-Math.PI/2,Math.PI/2);
ctx.lineTo(此.x,此.y+高度);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
}
this.move=函数(乘数){
var乘数=2;
var边界=5;
if(this.dirX>0&&this.x>this.cW-borders-width){
这个度=90;
this.dirX=0;
这个.dirY=1;
这个.x=cW-边界;
}
else if(this.dirY>0&&this.y>this.cH-borders-width){
这个角度=180度;
this.dirX=-1;
this.dirY=0;
this.y=this.cH-边界;
}
else if(this.dirX<0&&this.x

ctx.lineTo(this.x+this.hR,this.y);把这个代替这个ctx.lineTo(x+this.hR,this.y);没有任何区别,但是谢谢,没有注意到小姐:)你有一个移动函数,但是你在哪里调用它呢?函数animate(){ctx.clearRect(0,0,this.cW,this.cH);draw.forEach(函数(对象){object.move(2);});requestAnimationFrame(animate);}我应该在哪里调用移动函数?ctx.lineTo(this.x+this.hR,this.y);把这个代替这个ctx.lineTo(x+this.hR,this.y);没有任何区别,但谢谢,没有注意到小姐:)你有一个移动函数,但是你在哪里调用它?函数animate(){ctx.clearRect(0,0,this.cW,this.cH);draw.forEach(函数(对象){object.move(2);});requestAnimationFrame(animate);}我应该在哪里调用移动函数?