C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – SpriteKit:如何创建基础物理接头大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在两个SK物理机构之间创建简单的关节.但是,他们是奇怪的.
我很清楚锚点应该在场景坐标上.请看附件源代码.

例如,这是在矩形上附加一个小方块之后如何得到固定的关节.

-(void)createFixedJointOnScene:(SKScene*)scene

{

//Adding Rectangle

    SKSpriteNode* BACkBone = [[SKSpriteNode alloc] initWithColor:[UIColor whiteColor] size:CGSizeMake(20,200)];
BACkBone.position = CGPointMake(CGRectGetWidth(self.framE)/2.0,CGRectGetHeight(self.framE)/2.0);
BACkBone.physicsBody = [SKPhysicsBody bodyWithRectangLeofSize:BACkBone.size];
BACkBone.physicsBody.categoryBitMask = GFPhysicsCategoryRectangle;
BACkBone.physicsBody.collisionBitMask = GFPhysicsCategoryWorld;
[scene addChild:BACkBone];

//Adding Square
SKSpriteNode* head = [[SKSpriteNode alloc] initWithColor:[SKColor grayColor] size:CGSizeMake(40,40)];
head.physicsBody = [SKPhysicsBody bodyWithRectangLeofSize:head.size];
head.position = CGPointMake(BACkBone.position.x,BACkBone.position.y-40);
head.physicsBody.categoryBitMask = GFPhysicsCategorySquare;
head.physicsBody.collisionBitMask = GFPhysicsCategoryWorld;
[scene addChild:head];

//Pinning Rectangle and Square
NSLog(@"Head position %@",NSStringFromCGPoint(head.position));
SKPhysicsJointFixed* pin =[SKPhysicsJointFixed jointWithBodyA:BACkBone.physicsBody bodyB:head.physicsBody anchor:head.position];
[self.physicsWorld addJoint:pin];

}

https://dl.dropboxusercontent.com/u/62559842/PhysicsTest.zip

谢谢.

解决方法

谢谢Smick ..经过比较Smick的代码与我,我发现这两行的顺序正在引起问题.
head.physicsBody = [SKPhysicsBody bodyWithRectangLeofSize:head.size];
head.position = CGPointMake(BACkBone.position.x,BACkBone.position.y-40);

在设置Sprite物理身体之前,我设置了Sprite的位置,一切都开始正常工作.

head.position = CGPointMake(BACkBone.position.x,BACkBone.position.y-40);
head.physicsBody = [SKPhysicsBody bodyWithRectangLeofSize:head.size];

现在我已经将Smick的代码附加到了完整的代码,并将链接在这里.请享用.

https://dl.dropboxusercontent.com/u/62559842/PhysicsTest_Final_Working.zip

大佬总结

以上是大佬教程为你收集整理的objective-c – SpriteKit:如何创建基础物理接头全部内容,希望文章能够帮你解决objective-c – SpriteKit:如何创建基础物理接头所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。