2017-04-16 65 views
0

我正在製作這款遊戲​​,它涉及到敵人。對於他們來說保持相同的速度是相當無聊的,所以我希望當玩家得分更高時敵人的速度會增加。用愛來製作某些算法是很困難的,因爲大多數情況下,每一幀都用這個遊戲引擎更新。這就是現在實際給我的問題。Love2D值更新太快

我的邏輯的第一部分是正確的(其中player_scoreenemy.speed增加經過10的部分),但一旦它傳遞(或達到)10,enemy.speed值將繼續由10每幀增加。即使我專門爲此設置了enemiesReadyToSpeedUp布爾值! (以防止enemy.speed快速增加)

所以一旦玩家分數超過10,遊戲就變得無法玩,因爲敵人開始以「光速」移動。

function enemySpeedUp() 

    -- Once player score > scoreLimit + 10, enemy's speed will increase by 10, 
    -- and the scoreLimit will increase by 10 

    enemiesReadyToSpeedUp = false 
    scoreLimit = 0 

    if(player_score >= scoreLimit + 10) then 
     enemiesReadyToSpeedUp = true 
    end 

    if(enemiesReadyToSpeedUp == true)then 
     enemy.speed = enemy.speed + 10 
     scoreLimit = scoreLimit + 10 
     enemiesReadyToSpeedUp = false 
    end 
end 

事情我已經嘗試:

  • 沒有任何布爾寫這個功能幾乎相同。 (這意味着一旦玩家的速度超過10,我就提高敵人的速度,而不是布爾真實,然後根據布爾值提高敵人的速度)
  • 硬編碼敵人需要加速的每種可能的組合。但是這需要大量的if語句,效率非常低,並且也只是一般的錯誤編碼練習。但它確實有用,而且我實際上正在考慮以這種方式來做這件事,如果沒有別的辦法。
  • 最後,我也嘗試enemy.speed = enemy.speed + player_speed,但這是一個非常明顯的錯誤,因爲enemy.speed增加了每一幀,我得到了同樣的結果作爲我的第一個錯誤。

回答

0

你的錯誤是內enemySpeedUp()功能權限初始化scoreLimit0
將該作業移出,在設置初始值player_score的相同位置進行。

+0

omg,非常感謝你,我甚至沒有意識到我正在那樣做。 @Vlad –