我正在处理一个脚本,该脚本要在画布上旋转JSON中的一堆项目
这是我的循环:
var upQuarksCount = uNACG.quark.up.count;//number of entities - uNACG.anything is the JSON lookup in my localStorage
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,cW,cH);
for(var i = 0; i < upQuarksCount; i++) {//making a bunch of circles based on the number in localStorage
if(uNACG.quark.up.entities[i]){//check if it actually exists
var centerWidth = cW / 2,//half the window width
centerHeight = cH / 2,//half the window height
posX = uNACG.quark.up.entities[i].posX,//x position of entity
posY = uNACG.quark.up.entities[i].posY;//y position of entity
ctx.beginPath();
ctx.strokeStyle = "gold";
ctx.arc(posX, posY, 2, 0, 2 * Math.PI);//the actual circles
ctx.stroke();
}else{
console.log("no entities");
}
}
实际上,本地存储中的所有元素都被调用,它们出现在我想要的位置。现在,我需要它们旋转。没有渲染问题的最佳方法是什么?当我尝试使用平移和旋转时,整个画布都是疯狂的。看起来不愉快。
请帮助
编辑:发表评论以阐明变量的含义。
额外注意:上面的代码在游戏循环内发生。因此,它每次都会重复并刷新。这样就可以使用画布更新JSON中的所有更改。
在循环内部,我可以执行以下操作:
if(uNACG.quark.up.entities[i].posX < centerWidth) {
uNACG.quark.up.entities[i].posX++;
}
结果:每次刷新画布时,实体将向右移动一定的量,直到到达用户窗口的中心。
有条件的话,我可以做一些棘手的事情。但是事实证明,使实体独立旋转很困难。我必须为每个动画帧制作一个新的动画帧吗?