这是一个 Objective-C 代码,完全适用于屏幕周围的物理物体碰撞
self.physicsWorld.gravity = CGVectorMake(10.0f, -10.0f);
// Create a physics body borders the screen
SKPhysicsBody* borderBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
// Set physicsBody of scene to borderBody
self.physicsBody = borderBody;
SKSpriteNode* aa = [SKSpriteNode spriteNodeWithImageNamed:@"ca1.png"];
aa.position = CGPointMake(20, 20);
aa.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:aa.frame.size.width/2];
aa.physicsBody.friction = 0.0f;
aa.physicsBody.restitution = 1.0f;
aa.physicsBody.linearDamping = 0.0f;
[self addChild:aa];
这应该相当于 swift
self.physicsWorld.gravity = CGVectorMake(CGFloat(10.0), CGFloat(-10.0));
let physicsBody = SKPhysicsBody (edgeLoopFromRect: self.frame)
self.physicsBody = physicsBody
var sp=SKSpriteNode()
var atexture=SKTexture(imageNamed: "candycane.png")
sp=SKSpriteNode(texture: atexture)
sp.position=CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
sp.physicsBody = SKPhysicsBody(circleOfRadius: bird.size.height / 2)
sp.physicsBody?.friction = 0
sp.physicsBody?.restitution = 1
sp.physicsBody?.linearDamping = 0
self.addChild(sp)
但仅适用于顶部和底部, Sprite 节点可以左右走出
有什么问题吗? 我如何快速为场景设置边界?
最佳答案
问题是这个 swift 代码无法对下一个 Objective-C 代码产生相同的效果
let physicsBody = SKPhysicsBody (edgeLoopFromRect: self.frame)
self.physicsBody = physicsBody
objective-c代码
SKPhysicsBody* borderBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsBody = borderBody;
objective-c 代码工作速度很快,没有
关于objective-c - 场景的 Sprite 套件快速边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926249/