我正在學習Spritekit,並且希望檢測兩個圖像之間的碰撞。 只是一個有趣的圖片爲例:將邊框調整爲「真實」圖像,切割白色邊框SpriteKit objective c
圖像仍然是一個矩形。我該如何適應這個矩形適合原來的臉?當碰撞到圖像的矩形時,我不希望碰撞早,當它碰到面部的黑線時,我希望它碰撞。
我希望你能理解我的問題。
感謝您的任何幫助。
我正在學習Spritekit,並且希望檢測兩個圖像之間的碰撞。 只是一個有趣的圖片爲例:將邊框調整爲「真實」圖像,切割白色邊框SpriteKit objective c
圖像仍然是一個矩形。我該如何適應這個矩形適合原來的臉?當碰撞到圖像的矩形時,我不希望碰撞早,當它碰到面部的黑線時,我希望它碰撞。
我希望你能理解我的問題。
感謝您的任何幫助。
這裏有兩個問題:
你可能想設置你的SKPhysicsBody
是你SKSpriteNode
周圍的路徑。例如,類似下面的接近:
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(-40, -22, 80, 39)];
node.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path.CGPath];
這可能不是很正確,可以隨意調整這些值,但希望它描述了一個思路:拿出來定義您邊界的路徑,然後相應地設置physicsBody
。
如果您想查看物理大綱,請在SKView
上設置showsPhysics
。
你可能想掩蓋你的圖像,使圖像的角落是透明的(即具有零阿爾法):
所以,當這是在彩色背景上,它看起來像:
通過遮蔽的角落,你不必擔心白角掩蓋的東西在現場其他人。
如果它的形象得到了多數民衆贊成在它周圍白色邊框,美國可以在預覽編輯,並使用阿爾法擺脫所有周圍的白色的。
我認爲在這種情況下,精靈的碰撞方法會與黑線相碰撞。
你能解釋一下嗎?當我在預覽中打開它時,我添加了一個圖片的屏幕,我只是不知道阿爾法? – Robin
因此,在圖像中,單擊第二個按鈕(在圖像中突出顯示爲藍色的那個左側)。那就是阿爾法按鈕。然後點擊你的笑臉以外的白色區域,並拖動鼠標直到你想要刪除的白色被突出顯示。按退格鍵。如果你對結果滿意,按保存。如果沒有,你可以隨時撤消。 –
我可以以某種方式使實際物理體的邊界可見嗎? – Robin
@Robin - 打開'SKView'上的'showsPhysics'。請注意,當我這樣做時,我注意到我的「路徑」不太正確,所以我相應地更新了它。 – Rob