我一直在使用sfml和C++進行蛇遊戲,但我無法讓蛇的尾巴跟隨蛇頭定義爲蛇[ 0]在我的代碼下面。我已經實現的代碼,我認爲應該工作,但不被以下貪吃蛇遊戲 - 無法讓蛇體跟隨蛇頭
for (int i = 1; i < snakeSize; i++)
{
snakePartX[i] = snakePartX[i-1];
snakePartY[i] = snakePartY[i-1];
}
我理解它(我大概是令人難以置信的錯誤,如果有人能指出什麼是真正發生在這裏將不勝感激)方式那麼這段代碼應該將蛇身部分的值設置到前一個身體部位WAS所在的位置,以便當程序循環時,它們被設置爲在蛇行進時跟隨它。
實際上發生的事情是,當蛇吃一個蘋果時,蛇的尾巴會增加1塊,但不會再增長。
附註:您應該使用列表而不是矢量。那麼你不必複製每次移動的所有位置。 – Caduchon
@Caduchon:嘗試時機(如果它對蛇遊戲很重要)。列表可能導致緩存未命中,向量是連續的。 –
@Caduchon:出隊將是一個更好的結構,因爲它允許在一端(頭部)插入和在另一端(尾部)移除。 –