練習中,我使用AS3在Flash中編寫了一個非常簡單的2D平臺遊戲。我想定義兩種不同類型的地形表面,玩家可以根據經典的平臺元素來行走。類型1:玩家可以繼續前進,如果玩家跳躍,他們會將頭撞上並彈回地面。 Type2:玩家也可以繼續前進,但如果玩家跳躍並擊中頭部,他們只會穿過表面而不會彈回地面。如何從HitTest獲取對象類型?
我正在使用hitTestPoint來解決衝突。 我的問題是:什麼是最好的方法來測試我與什麼類型的地面碰撞?在我的Flash IDE中,每種地面類型都有它自己的類,並且所有不同的地形表面類型都在舞臺上的同一個影片剪輯中。
目前我正在測試它是否碰到某種類型的地面,然後我測試它是否碰到另一個地面,然後基於這些結果,我處理我想要發生的事情。這看起來好像現在還行,但我想象着我可能想創造超過兩種類型的地面與之相撞。例如,移動平臺。似乎代碼將開始變得複雜
例如。
if(_groundType1.hitTestPoint(_player.x, _player.y, true))
{
if(_groundType2.hitTestPoint(_player.x, _player.y, true))
{
//don't hit the players head
}
//hit the players head
}