2013-09-28 15 views
1

我目前正在玩弄一些AS3平臺遊戲,並嘗試使用更清晰的基於對象的平臺方法。總之,我想如果玩家對象與平臺碰撞檢測 - ALA:如何引用父對象(即從根或階段)?

if (!player.hitTestObject(this)) { 
    //player falls 
} 

然而,問題是在實際引用選手對象 - 玩家在以下位置(從舞臺); manager.player - 平臺在manager.level.foreground。

有沒有辦法真正從前景對象中引用的選手對象上面列出,沒有一個構造函數傳遞從球員到每個與平臺的每一個實例?

回答

2

你可以做

if (!this.parent.parent.player.hitTestObject(this)) { 
    //player falls 
} 

但我強烈反對這項建議,因爲它是非常不靈活的變化,並導致可能的調試噩夢了:)

豈不是整潔,讓經理手柄它的孩子之間的碰撞?

+0

我正在考慮這種做法 - 但問題是,要保持它的任何方式清潔,我不得不傾倒在整個循環每一個平臺到一個數組中,並循環搜索碰撞 - 然後管理陣列的尺寸和成員級別的區域被刪除/添加(據我所知)。 – Eoghan

+0

那麼,無論您是在平臺類還是經理中進行碰撞檢查,您都需要循環。你可以編寫一個簡短的函數,用可能碰撞的平臺填充一個數組,例如找到在角色周圍有一個圓圈內的位置,速度爲半徑的平臺。 hittesting是昂貴的,檢查x和y座標不是 –

1

你可以得到一個靜態引用,用於創建玩家對象的地方。在那個類中,你基本上返回一個引用給玩家。

相關問題