我正在爲遊戲創建一個非常基本的精靈(它在Canvas/Context/LineTo中繪製)。我希望它的表達根據兩種不同的繪製方法隨機變化。這是我在這樣的嘗試:JavaScript Canvas - 是否可以繪製取決於Math.random?
drawFace = function() {
if (Math.random() < 0.05) {
Player.drawhappyface(context);
}
else if (Math.random() < 0.1) {
Player.drawsadface(context);
}
}
drawFace();
我可以證實,drawhappyface和drawsadface繪製方法的工作獨立於本功能(分別畫一個微笑,一顰)。但是使用這個函數及其邏輯,他們根本就不會被繪製(玩家完全沒有臉)。那麼,我寫錯了嗎?我受以下模擬的啓發,該模擬不斷使用Math.random動畫表達式:http://www.blobsallad.se/
如果我改爲寫這樣的函數,那麼在畫布上絕對沒有繪製任何東西(所有其他精靈等也不是拉):
drawFace = function (context) {
if (Math.random() < 0.05) {
Player.drawhappyface(context);
}
else if (Math.random() < 0.1) {
Player.drawsadface(context);
}
}
drawFace();
ÿ你有一個'if ... else if ...',概率低,沒有'else',當然會有幾個例子,它什麼都不做。 –
您的第二個'drawFace'需要一個名爲'context'的參數,但是當您調用它時,您會提供零個參數。即,你可以'drawFace()'而不是'drawFace(foo)'。爲什麼要告訴'drawFace',如果在你調用它的時候沒有提供一個參數,那麼你會期待一個參數?因此,函數 – apsillers