【发布时间】:2014-07-20 09:40:54
【问题描述】:
我正在尝试水平表示多行移动的矩形。为此,我创建了矩形“类”的实例并移动它们以增加它们的 X 属性。 按照这个论坛上的建议,我使用 requestAnimationFrame 来完成这项任务。
逻辑问题
我正在尝试表示从客户端发送到服务器的包。 (从左到右)。
这是一个打印屏幕:
我面临的问题是,当一个矩形与任何其他矩形“相交”时(意味着相交一个或多个矩形同时具有相同的 x 值)我需要等待随机时间才能绘制一个新矩形在同一行。
现在我正在一个 requestAnimationFrame 循环中完成所有动画。如何等待并分别绘制每个矩形。
我在谷歌上搜索了很多关于这个主题的内容,看起来你应该只使用一个循环,但在这种情况下,我如何不使用 Java 中的线程来做到这一点?
如何在不停止整个动画循环的情况下等待随机时间?
我应该为每个矩形使用独立的 requestAnimationFrame 循环吗?
Rectangle.prototype.move=function(){
var maxRight=canvas.width-this.width;
for(var i=0; i< rectangles.length; i++){
if(rectangles[i].y!=this.y){
if(intersects(this.x,this.width,rectangles[i].x,this.width) && this.colided==false){
console.log("choque");
this.colided=true;
this.color="#DC143C";
rectangles[i].color="#DC143C";
rectangles[i].colided=true;
numColisions+=2;
}
}
}
this.x+=this.velocityX;
if(this.x>maxRight){
this.end=true;
}
return(this);
};
// draw this rect on the canvas
Rectangle.prototype.render=function(){
ctx.fillStyle=this.color;
ctx.fillRect(this.x,this.y,this.width,this.height);
return(this);
}
【问题讨论】:
标签: javascript html animation html5-canvas requestanimationframe