我刚开始把一个简单的游戏放在一起,你需要食物,否则你就死了。简单,这只是一件有趣的事情。
我尝试的方法与我通常做的不同,角色旋转然后移动。
当角色旋转时,它会移动一定量,然后向另一个方向旋转一定量。然后它重复。我如何让它只旋转一个方向,而不是交替(并且整个时间只是朝着相同的方向)。
旋转脚本:
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/
另请注意,我还没有创建一个功能来清除所采取的路径。
提前致谢!
答案 0 :(得分:0)
感谢Siguza,我有答案(如果有人遇到类似的问题,请在此处发布)
我正在添加+3,这导致角色顺其自然。它本来应该让他走得更快,相反应该是* 3(他也建议)。
self.locationx += posX + 3;
self.locationy += posZ + 3;
更改为:
self.locationx += posX * 3;
self.locationy += posZ * 3;