旋转角色时,旋转一定量,然后返回

时间:2015-07-12 16:17:55

标签: javascript canvas rotation

我刚开始把一个简单的游戏放在一起,你需要食物,否则你就死了。简单,这只是一件有趣的事情。

我尝试的方法与我通常做的不同,角色旋转然后移动。

当角色旋转时,它会移动一定量,然后向另一个方向旋转一定量。然后它重复。我如何让它只旋转一个方向,而不是交替(并且整个时间只是朝着相同的方向)。

旋转脚本:

self.rotationy = 0;
self.rotationx = 0;
self.turnLeft = function() {
    self.rotationy -= 0.1;
};
self.turnRight = function() {
    self.rotationy += 0.1;
};
self.move = function() {
    var posX = Math.sin(self.rotationy);
    var posZ = Math.cos(self.rotationy);
    self.locationx += posX + 3;
    self.locationy += posZ + 3;
};

如果它很重要,请点击此处更新脚本:

self.update = function() {
    self.hunger -= 0.003;
    self.updateColour();
    if (self.hunger <= 0) {
        self.die();
    } else if (self.hunger >= 1) {
        self.die();
    }
    if (self.locationx <= 20) {
        self.locationx = canvas.width - 21;
    } else if (self.locationx >= canvas.width - 20) {
        self.locationx = 21;
    } else if (self.locationy <= 20) {
        self.locationy = canvas.height - 21;
    } else if (self.locationy >= canvas.height) {
        self.locationy = 21;
    }
    drawCircle(ctx, self.locationx, self.locationy, 20, self.colour);
};
self.die = function() {

};
    setInterval(self.update, 50);
};

这是一个JSFiddle:http://jsfiddle.net/hzhubf8o/

另请注意,我还没有创建一个功能来清除所采取的路径。

提前致谢!

1 个答案:

答案 0 :(得分:0)

感谢Siguza,我有答案(如果有人遇到类似的问题,请在此处发布)

我正在添加+3,这导致角色顺其自然。它本来应该让他走得更快,相反应该是* 3(他也建议)。

self.locationx += posX + 3;
self.locationy += posZ + 3;

更改为:

self.locationx += posX * 3;
self.locationy += posZ * 3;