我正在嘗試寫一個蛇遊戲。這非常簡單,有一系列蛇形分段,它們都是精靈,它們都有x
和y
的值。在每個遊戲循環中,我想根據用戶輸入更新蛇段。蛇段在蛇遊戲中跟隨頭部
注意:蛇的頭部被定義爲this.segments[0]
。段數組的第一個元素是頭部。
對我來說,根據用戶輸入更新蛇頭似乎是合乎邏輯的,然後在頭更新之後將每個蛇段跟隨它。這是我的代碼到目前爲止:
public function update()
{
// Update snake head
this.segments[0].x += 10;
for (var i:Number = 1; i < this.segments.length; i++)
{
// Set the segments position to be the same as the one before it
this.segments[i].x = this.segments[i - 1].x;
this.segments[i].y = this.segments[i - 1].y;
}
}
希望你能看到你在這裏做什麼。我試圖設置段x和y的值與它之前的值相同,因此它會「跟隨」。
問題是,當我運行這段代碼時,每個蛇段都堆積在同一個座標的頂部,看起來像是一個運行的段。他們不遵循,他們在彼此的頂部。
對我來說,邏輯看起來很穩固,所以給了什麼?
旁註:任何人都知道如何添加一些角度,這取決於你的矢量加速度x,y? – Adrian 2012-03-28 23:45:27