2015-09-13 62 views
0

我正在學習Spritekit,並且希望檢測兩個圖像之間的碰撞。 只是一個有趣的圖片爲例:enter image description here將邊框調整爲「真實」圖像,切割白色邊框SpriteKit objective c

圖像仍然是一個矩形。我該如何適應這個矩形適合原來的臉?當碰撞到圖像的矩形時,我不希望碰撞早,當它碰到面部的黑線時,我希望它碰撞。

我希望你能理解我的問題。

感謝您的任何幫助。

編輯: enter image description here

回答

1

這裏有兩個問題:

  1. 你可能想設置你的SKPhysicsBody是你SKSpriteNode周圍的路徑。例如,類似下面的接近:

    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(-40, -22, 80, 39)]; 
    node.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path.CGPath]; 
    

    這可能不是很正確,可以隨意調整這些值,但希望它描述了一個思路:拿出來定義您邊界的路徑,然後相應地設置physicsBody

    如果您想查看物理大綱,請在SKView上設置showsPhysics

  2. 你可能想掩蓋你的圖像,使圖像的角落是透明的(即具有零阿爾法):

    enter image description here

    所以,當這是在彩色背景上,它看起來像:

    enter image description here

    通過遮蔽的角落,你不必擔心白角掩蓋的東西在現場其他人。

+0

我可以以某種方式使實際物理體的邊界可見嗎? – Robin

+1

@Robin - 打開'SKView'上的'showsPhysics'。請注意,當我這樣做時,我注意到我的「路徑」不太正確,所以我相應地更新了它。 – Rob

1

如果它的形象得到了多數民衆贊成在它周圍白色邊框,美國可以在預覽編輯,並使用阿爾法擺脫所有周圍的白色的。

我認爲在這種情況下,精靈的碰撞方法會與黑線相碰撞。

+0

你能解釋一下嗎?當我在預覽中打開它時,我添加了一個圖片的屏幕,我只是不知道阿爾法? – Robin

+1

因此,在圖像中,單擊第二個按鈕(在圖像中突出顯示爲藍色的那個左側)。那就是阿爾法按鈕。然後點擊你的笑臉以外的白色區域,並拖動鼠標直到你想要刪除的白色被突出顯示。按退格鍵。如果你對結果滿意,按保存​​。如果沒有,你可以隨時撤消。 –