首页 > 解决方案 > Sprite Kit 上动画节点的物理体

问题描述

我的游戏中有一个动画角色,它有 8 种不同的纹理,“永远重复”。我需要一个物理体,但我不知道如何创建。在我使用的其他游戏中,player.physicsBody = SKPhysicsBody(rectangleOf: UI.player.size)但现在我想使用:

player.physicsBody = SKPhysicsBody(texture: playerTexture, size: player.size)

问题是纹理不同,我无法跟踪它们。有任何想法吗?

这是动画代码:

func playerRunning(player: SKSpriteNode){
        let texture1 = SKTexture(imageNamed: "DJ 1")
        let texture2 = SKTexture(imageNamed: "DJ 2")
        let texture3 = SKTexture(imageNamed: "DJ 3")
        let texture4 = SKTexture(imageNamed: "DJ 4")
        let texture5 = SKTexture(imageNamed: "DJ 5")
        let texture6 = SKTexture(imageNamed: "DJ 6")
        let texture7 = SKTexture(imageNamed: "DJ 7")
        let texture8 = SKTexture(imageNamed: "DJ 8")
        let animate = SKAction.animate(with: [texture1, texture2, texture3, texture4, texture5, texture6, texture7, texture8], timePerFrame: 0.125)
        let animateRF = SKAction.repeatForever(animate)
        player.run(animateRF, withKey:"runningAction")
    }

标签: iosswiftsprite-kitskphysicsbody

解决方案


我不知道有什么方法可以使物理体发生变化以匹配动画序列中的每个纹理。要么选择 8 种纹理中的一种作为创建物理体的纹理,要么使用矩形来创建物理体,就像您在其他游戏中所做的那样。


推荐阅读