objective-c - 场景的 Sprite 套件快速边界

标签 objective-c xcode swift sprite-kit skphysicsbody

这是一个 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/

相关文章:

ios - 如何在 UINavigationBar 和 UISegmentedControl 之间添加垂直空间?

objective-c - 无法链接 IBaction 或 IBOutlet

ios - 您的帐户已在 Xcode 7.3 中拥有有效的 iOS 开发证书

ios - 即使正确调用 cellForRowAtIndexPath,UITableView 也会显示空白单元格

IOS - 使用自定义 UI TableViewCell 作为 TableFooter

iphone - 不使用核心数据对 TableViewCell 进行编号

ios - 当 UIButton 的 subview 是 UITableViewCell 的 subview 或任何其他 View 的 subview 时,设置 UIButton 边缘插入的理想位置是什么

ios - 为什么更改步进值会导致 Xcode 中的代码崩溃?

swift - 美元符号在 Swift/SwiftUI 中起什么作用?

swift - Alamofire 5 上传编码完成