SkShapeNode Physicsbody怪异行为

时间:2018-09-05 11:10:29

标签: swift xcode sprite-kit skspritenode shapes

我创建了SKNode的子类:

class SquareDrop: SKNode {
    init(image: SKSpriteNode) {
        super.init()
        self.setScale(0.3
        //Set the starting position of the node 
        self.position = CGPoint(x: 0.5, y: UIScreen.main.bounds.height/2)
        //Apply a physics body to the node
        self.physicsBody = SKPhysicsBody(texture: SKTexture(imageNamed: "square"), size: CGSize(width: image.size.width * 0.3, height: image.size.height * 0.3))
        self.addChild(image)
}

我在GameScene类中创建了一个实例,并进行了设置:

func spawnRain() 
    squareDrop = SquareDrop(image: SKSpriteNode(imageNamed: "square"))
    squareDrop?.physicsBody?.linearDamping = 5
    squareDrop?.physicsBody?.restitution = 0
    self.addChild(squareDrop!)
}

它是结果:

Image A

它的工作方式与方面相同,但我不想使用图像来绘制正方形:

func spawnRain() {
    //Here I did not use the class that I had created previously
    let shape = SKShapeNode()
    shape.path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: 100, height: 100), cornerRadius: 5).cgPath
    shape.position = CGPoint(x: frame.midX - shape.frame.width/2 , y: UIScreen.main.bounds.height/2)
    shape.fillColor = UIColor.red
    shape.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 100, height: 100))
    addChild(shape)
 }

enter image description here

看起来我似乎没有宽高比(我创建的正方形具有奇怪的行为)。有什么提示吗? 我很抱歉这个问题,但是我是SpriteKit的菜鸟。

0 个答案:

没有答案