2015-07-12 40 views
0

我剛剛開始將一個簡單的遊戲放在一起,你的點需要食物,否則你會死。簡單來說,這只是一件有趣的事情。當旋轉一個角色時,它會旋轉一定的角度,然後返回

我正在嘗試一種不同於通常我做的方法,其中角色旋轉後移動。

當人物轉動時,它會有一定的量,然後向另一個方向轉動一定的量。然後它重複。我該如何讓它只是旋轉一個方向,而不是交替(並且總是按照相同的總體方向進行)。

旋轉腳本:

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

無法重現你的「交替」的問題,但「相同的方向」,是因爲'+ 3'你那裏 - 它總是會去沿X和Y的正向。 – Siguza

+0

哦。謝謝!那樣做了。但現在緩慢下去,我怎麼加快速度? – Xelipho

+0

你可以嘗試'*'作爲開始... – Siguza

回答

0

感謝Siguza,我有我添加+3,這引起了字符沿正走答案(在這裏張貼的情況下,任何人都遇到過類似問題)

。它應該讓他更快,而這應該是* 3(也是他的建議)。

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

更改:

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