【发布时间】:2018-03-24 10:40:04
【问题描述】:
如果我向右、向左、向上或向下移动播放器,我会朝那个方向移动 5px。 但是,如果我向下和向右按下,例如播放器向右移动 5px,向下移动 5px,这距离之前的位置大约 7 个像素,而不是 5px。
我可以添加下一条 IF 语句:if (up and down) then spdX and spdY = (maxSpd - maxSpd√2) / or simple -25% ?.
但我认为我的代码已经有点乱了......
任何快速且看起来简单的好解决方案? :)
这是我的代码:
self.updateSpd = function(){
if(self.pressingRight){
self.spdX = self.maxSpd;
if(self.pressingShift && self.stamina > 0){
self.spdX += self.maxRun;
self.stamina --;
}
}
else if(self.pressingLeft){
self.spdX = -self.maxSpd;
if(self.pressingShift && self.stamina > 0){
self.spdX -= self.maxRun;
self.stamina --;
}
}
else{
self.spdX = 0;
}
if(self.pressingUp){
self.spdY = -self.maxSpd;
if(self.pressingShift && self.stamina > 0){
self.spdY -= self.maxRun;
self.stamina --;
}
}
else if(self.pressingDown){
self.spdY = self.maxSpd;
if(self.pressingShift && self.stamina > 0){
self.spdY += self.maxRun;
self.stamina --;
}
}
else{
self.spdY = 0;
}
}
【问题讨论】:
标签: javascript node.js express math