使用JSON在canvas API上旋转/旋转多个项目

时间:2019-04-30 00:17:24

标签: javascript canvas

我正在处理一个脚本,该脚本要在画布上旋转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++; 
}

结果:每次刷新画布时,实体将向右移动一定的量,直到到达用户窗口的中心。

有条件的话,我可以做一些棘手的事情。但是事实证明,使实体独立旋转很困难。我必须为每个动画帧制作一个新的动画帧吗?

0 个答案:

没有答案