好奇的我會怎樣做一個SKSpriteNode跨越顛簸的路面上行走平穩(圖片下方評估「顛簸的路面」) 如何讓SKSpriteNode在顛簸的地形上平穩行走?
我也希望圖像有一個SKPhysicsBody。我怎麼可能做到這一點?
好奇的我會怎樣做一個SKSpriteNode跨越顛簸的路面上行走平穩(圖片下方評估「顛簸的路面」) 如何讓SKSpriteNode在顛簸的地形上平穩行走?
我也希望圖像有一個SKPhysicsBody。我怎麼可能做到這一點?
剛走做到這一點(在Unity)的基本前提是:
在雪碧套件獲得從光線投射交叉點的唯一方法是使用SKPhysicsWorld類enumerateBodiesAlongRayStart:end:usingBlock:
。如果你的角色只能直走(即他不會旋轉以適應地形,而地形沒有「循環」),則只需檢查交點的Y座標。
說出您的節點的位置是在Y = 340和射線相交於Y = 310和您的節點的高度爲80,則:
(340 - 310) + 80/2 = 70
然後70是從播放器應該被定位在地板的距離,確切地說,它是光線碰到地板(310)時的Y座標加上這個70,這就使得Y = 380作爲新的高度。當你在飛機上行走時,保持X座標並改變Y座標。
當然,地平面需要是一個物理體,特別是使用邊緣形體。有些工具可以讓你從形狀設計這些點,最突出的是PhysicsEditor。但是,一開始,您可以嘗試使用單個線段,以一定角度傾斜,以測試您的角色是否正確地向上或向下飛行。
請注意,如果您使用的是物理,您應該在確定地面命中後將物理體的速度設置爲0,0,否則速度可能會累積,並且物體最終在地面下降,或者無法跳躍,或者做其他奇怪的東西。
我仍然會設置物理主體'CategoryBitMask'等嗎?或者光線投射是否完成所有工作? @ LearnCocos2D – Mutch95
就我所瞭解的情況而言,光線投射會使你擊中所有的物體,然後你必須測試枚舉的物體是否應該被認爲是碰撞或不碰撞。例如,它可能會返回播放器主體本身作爲第一個結果。 – LearnCocos2D