簡體   English   中英

將SKPhysicsJoint添加到對象的最佳方法

[英]Best way to add a SKPhysicsJoint to an object

所以我有一個我在Sprite Kit中制作的牽線木偶,並把他放在一個場景中。 我創建了一個Marionette類,它是SKNode的子類,當我創建這個類的實例時,我相互添加了許多SKSpriteNodes。 這應該讓你知道它是如何工作的(我已經剪掉了不必要的行):

[self addChild:self.head];
[self.head addChild:self.chest];
[self.chest addChild:self.leftLeg];
[self.chest addChild:self.rightLeg];
[self.leftLeg addChild:self.leftFoot];
[self.rightLeg addChild:self.rightFoot];

所以,這樣做之后,我的牽線木偶出現了。 我想為每個連接添加一個SKPhysicsJointPin。 代碼如下所示:

self.chestPin = [SKPhysicsJointPin jointWithBodyA:self.marionette.head.physicsBody bodyB:self.marionette.chest.physicsBody anchor:self.marionette.chest.anchorPoint];

起初我以為我可以設置Marionette類中的所有引腳,但這不起作用(如果我記得,我得到EXC_BAD_ACCESS)。 事實證明,在添加關節之前,我必須將Marionette添加到整個SKScene中。

我覺得這很有意義,但我不禁想到應該有一些方法可以在Marionette課程中設置一切,然后在場景中粘貼2行代碼來創建一個新的Marionette,然后將他添加到現場。

實際上,我的SKScene子類現在有一堆代碼來添加所有引腳,並且它不適合在場景中。 思考?

您不希望將anchorPoint用作錨點。 anchorPoint屬性是一個從0到1的因子,它影響紋理從精靈位置偏移的方式,即默認的0.5 / 0.5將精靈的紋理置於精靈位置的中心。 換句話說, anchorPoint不是一個位置,使用它將身體和頭部關節錨定到屏幕的左下角。

相反,嘗試使用胸部或頭部的位置作為錨,或兩者之間的點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM