Ios 精灵套件-怪异位置的精灵

Ios 精灵套件-怪异位置的精灵,ios,sprite-kit,swift,Ios,Sprite Kit,Swift,我试图做一个乒乓球娱乐,但似乎是球员或桨和球被画在奇怪的位置出于某种原因 将“动态”变为“假”似乎是可行的,但我确实需要它是动态的,以便球在屏幕上反弹,并使其他物理工作正常 override func didMoveToView(view: SKView) { /* Setup your scene here */ self.backgroundColor = SKColor.whiteColor() self.physicsWorld.gravity = CGVecto

我试图做一个乒乓球娱乐,但似乎是球员或桨和球被画在奇怪的位置出于某种原因

将“动态”变为“假”似乎是可行的,但我确实需要它是动态的,以便球在屏幕上反弹,并使其他物理工作正常

override func didMoveToView(view: SKView) {
    /* Setup your scene here */
    self.backgroundColor = SKColor.whiteColor()
    self.physicsWorld.gravity = CGVectorMake(0, 0)

    self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
    self.physicsBody.restitution = 0.0
    self.physicsBody.angularDamping = 0.0
    self.physicsBody.dynamic = false
    self.physicsBody.friction = 0.0

    self.setUpPlayers()
    self.setUpBall()
}

func setUpPlayers() {
    p1 = SKSpriteNode(imageNamed: "racquet")
    p1.name = "p1"
    p1.position = CGPointMake(self.frame.width/2, self.frame.height*0.1)
    p1.xScale = 1.5
    self.addChild(p1)

    p1.physicsBody = SKPhysicsBody(rectangleOfSize: self.frame.size)
    p1.physicsBody.dynamic = false
    p1.physicsBody.categoryBitMask = pCategory
    p1.physicsBody.restitution = 0.1
    p1.physicsBody.usesPreciseCollisionDetection = true
    p1.physicsBody.angularDamping = 0
    p1.physicsBody.linearDamping = 0.0
    p1.physicsBody.allowsRotation = false
    p1.physicsBody.friction = 0.4

    p2 = p1.copy() as SKSpriteNode
    p2.position = CGPointMake(self.frame.width/2, self.frame.height*0.9)
    self.addChild(p2)
}

func setUpBall() {
    ball = SKSpriteNode(imageNamed: "Ball")

    ball.physicsBody = SKPhysicsBody(circleOfRadius: self.frame.size.width/2)
    ball.physicsBody.dynamic = true
    ball.physicsBody.restitution = 1.0
    ball.physicsBody.friction = 0.0
    ball.physicsBody.angularDamping = 0.0
    ball.physicsBody.linearDamping = 0.0
    ball.physicsBody.affectedByGravity = false
    ball.physicsBody.usesPreciseCollisionDetection = true

    ball.position = CGPointMake(self.frame.width/2, p1.position.y+ball.frame.size.width/2+10)
    self.addChild(ball)
}

预期结果:

您的代码确实解释了预期结果,但是您能告诉我们精灵是如何被重新设计的吗?我不知道这有什么奇怪的地方。你能解释一下你期望的是什么吗。