我正在开发一个模拟万有引力的 javascript 游戏。它使用 HTML5 画布元素为行星绘制 2D 椭圆。我在 Google Chrome 中测试我的游戏。这是游戏的链接: http://gravitygame.hostingsiteforfree.com/index.php?page= playHTML
直到 5 月 24 日,它工作得很好。但是,Chrome 从 26.0.1410.64 升级到 27.0.1453.94 后,填充的椭圆有时不会绘制出来。每次我加载我的游戏时都不会发生这种情况,而且我从来没有在本地运行时让它中断。
这是游戏运行的屏幕截图:
这是一个屏幕截图,显示它没有填充椭圆:
我不知道发生了什么。我将包括绘制所有行星的循环部分。为了便于阅读,我对其进行了修改。
var i = bodies.length;
while(i--){
var I = bodies[i];
var planetRad = (I.width/2)*_scale;
if(_showTrails){
//draw the planet's trail
}
if(//the planet is completely off the screen){
//draw a red planet on the edge of the screen
ctx.beginPath();
ctx.arc(nX, nY, 2.5, 0, TWOPI);
ctx.fillStyle = offScreenColor;
ctx.fill();
ctx.strokeStyle = offScreenOutline;
ctx.stroke();
}
else{
//draw planet
ctx.beginPath();
ctx.arc(nX, nY, (I.width/2)*_scale, 0, TWOPI);
ctx.closePath();
ctx.fillStyle = I.bodyColor;
ctx.fill();
}
if(_showMotionVector){
//draw a line from the center of a planet showing the direction and speed it's travelling
ctx.strokeStyle = motionColor;
ctx.beginPath();
ctx.moveTo(I.getScX(), I.getScY());
ctx.lineTo(I.motion.x * _scale * 12 + I.getScX(), I.motion.y * _scale * 12 + I.getScY());
ctx.stroke();
}
}
为什么偶尔会突然坏掉?