如果用physicsBody聲明2個對象(例如Rectangle和Triangle),可以拖放它們,我們如何設置,當我們拖動一個靠近另一個時,2個對象將在任何合適的點?聯合物理學如何在Spritekit中關閉時體驗
1
A
回答
0
在您的touchesEnded(放置事件)中,檢查兩個對象的位置,如果它們足夠接近,請添加關節。
0
您可以創建一個大於您的精靈的physicsBody,並測試它是否與didBeginContact中的另一個主體進行聯繫。使用SKPhysicsContact對象,您可以使用SKPhysicsJointFixed或SKPhysicsJointLimit在聯繫點處加入兩個物理實體。
編輯:這裏有一個如何把兩個精靈感動的例子:
聲明一個實例變量對所選擇的節點。
{
SKSpriteNode *selectedNode;
}
如果檢測到聯繫人,請加入兩個物理實體。節點與SKPhysicsJoint連接。
- (void) didBeginContact:(SKPhysicsContact *)contact
{
if ((contact.bodyA.categoryBitMask == category1
&& contact.bodyB.categoryBitMask == category2)
|| (contact.bodyB.categoryBitMask == category1
&& contact.bodyA.categoryBitMask == category2)) {
CGPoint point = contact.contactPoint;
SKPhysicsJoint *joint = [SKPhysicsJointFixed jointWithBodyA:contact.bodyA bodyB:contact.bodyB anchor:point];
[self.physicsWorld addJoint:joint];
}
}
基於觸摸選擇並移動精靈。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
selectedNode = (SKSpriteNode *)node;
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch moves */
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
selectedNode.position = location;
}
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch ends */
selectedNode = nil;
}
相關問題
- 1. SpriteKit崩潰:物理體如何失去與SKNode的關聯?
- 2. AndEngine物理學聯合
- 3. SpriteKit物理如何移動物體?
- 4. 在Xcode中縮放物理實體Spritekit
- 5. 問題與物理世界中除去物理體(spritekit)
- 6. SpriteKit PhysicsBody:無法創建物理實體
- 7. Spritekit跳躍物理
- 8. SpriteKit動畫物理
- 9. 是否可以在spriteKit中停用物理體中的碰撞?
- 10. 如何讓一個物體粘在SpriteKit中的另一個移動物體上
- 11. 如何處理複合關鍵實體與Doctrine2的關聯?
- 12. 創造物理學體在cocos2d
- 13. 我的物理聯繫人沒有聯繫SpriteKit
- 14. SpriteKit:如何創建基礎物理關節
- 15. 在SpriteKit中給定SpriteNode的每一邊創建物理實體
- 16. 你如何通過Spritekit聯合錨?
- 17. 碰撞在iOS7中正常SpriteKit物理
- 18. 如何使用關聯驗證實體?
- 19. Swift,SpriteKit:使用edgeLoopFromRect時SpriteNode出錯的物理體位置
- 20. 打開和關閉物理
- 21. 如何在onmouseout時關閉組合框?
- 22. SpriteKit遊戲物理滯後
- 23. SpriteKit physics物理線路
- 24. SpriteKit物理機構邊緣
- 25. 如何處理窗體關閉事件
- 26. C++內聯閉合類似物
- 27. 如何在Kafka關閉時處理IOException?
- 28. 如何開始學習物聯網?
- 29. Android:從互聯網下載文件時關閉互聯網時如何處理?
- 30. 用子彈物理學將物體施加在物體的方向上
對不起,我沒有足夠的解釋,例如,如果2對象可以旋轉,它變得非常複雜? – 2014-09-03 18:16:02
這種方法仍然可以工作,因爲physicBody與精靈一起旋轉。 – Epsilon 2014-09-04 19:31:49
謝謝你,我會盡力在完成後發佈代碼。 – 2014-09-05 08:04:27