2015-04-14 45 views
0

我現在有一個可控的蛇頭形狀,可以響應輸入,我也有一些形狀被繪製到遊戲板上。是否有人可以看看我的代碼,並幫助我添加/修改任何可以使我的蛇在與其中一種衍生形狀相交時增長的修改?如何讓蛇在與物體碰撞時伸長?

我所有的項目文件都在引擎收錄:http://pastebin.com/u/Addsy

感謝。

回答

0

您可以將蛇的身體部位存儲在蛇類的鏈表中。渲染將歸結爲迭代列表並分別渲染每個部分。至於移動,一旦你有一個方向,你會移動頭部,然後將列表中的每個身體部位移動到它前面的位置。例如,頭部先移動,然後第一部分移動到頭部的前一個位置,第二部分移動到第一部分的位置等等。爲了拉長蛇,在移動中,您可以在列表的末尾再創建一個節點,並在移動之前使用尾部的位置。

+0

是的,這正是我想要做的,但由於我限於C++代碼,我正在努力添加什麼來實現這一點。你有什麼建議添加什麼以及在哪裏? – Addsy

+0

在你的蛇類中有一個std :: list 。第一個元素(列表的頭部)將是你的蛇的頭部的位置,每個後面的元素將是body.Next,你將不得不編輯你的移動函數改爲移動列表中的每個元素,而不僅僅是頭部。我只查看了你的代碼,但我認爲你有一些功能來檢查蛇是否可以在選定的方向上前進?如果是這樣的話,你可以在這個類中使用一個bool變量,如果你的蛇在下一回閤中會與一個形狀相撞,並且在移動中增長,那麼這個變量將設置爲true。 – Nazara