ios - Swift physicsbody 边缘识别问题

标签 ios swift sprite-kit

以下代码识别场景的底部和顶部边缘,并且球按预期反弹。然而,场景的左边缘和右边缘总是被破坏。如果施加足够的力,球会离开屏幕然后最终返回。就好像场景的边缘超出了iphone模拟器窗口的边缘。有人可以帮忙吗?谢谢。

import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView){
        self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
        backgroundColor = UIColor.cyanColor()
        var ball = SKSpriteNode(imageNamed: "ball")
        ball.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
        self.addChild(ball)
        ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.frame.size.height/2)
        let push = CGVectorMake(10, 10)
        ball.physicsBody.applyImpulse(push)

    }
}

最佳答案

例如,您可以尝试更改 self.physicsBody 的大小;

self.physicsBody = SKPhysicsBody(edgeLoopFromRect: CGRectMake(self.frame.origin.x, self.frame.origin.y, self.size.width, self.size.height))

并根据需要更改参数self.size.width

关于ios - Swift physicsbody 边缘识别问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24894208/

相关文章:

macos - 获取 SKSpriteNode 纹理在该位置的 alpha 值

swift - 如何在 spritekit 游戏中制作建筑计时器?

objective-c - 为什么 ARC 取消分配我的对象?

html - CSS 未在 IOS < ver 10 设备上加载

ios - 核心数据关系不返回任何值

ios - 如何从主视图中的特定位置淡入 UIVIew

ios - UITableView 破坏性上下文菜单动画

ios - swift iOS : How to force a loop with async code to run synchronously?

ios - 带有以编程方式添加的图像的 UITableViewAutomaticDimension

ios - 点击屏幕底部会导致 touchesBegan 延迟/延迟