Sprite kit 发射时坠毁,与SKP发生错误
我正在创建一个游戏,我正在尝试创建一个具有两个不同节点的角色,腿和躯干。我试着用一个固定的关节把它们连接起来,但是当我这样做的时候,躯干有时会在走动的时候从腿上滑下来。现在,我正尝试使用两个节点之间的距离限制来创建角色,希望它们现在不会彼此滑动,但是在启动时会不断崩溃。有什么想法吗? 这是我的密码Sprite kit 发射时坠毁,与SKP发生错误,sprite-kit,nodes,game-physics,skphysicsbody,Sprite Kit,Nodes,Game Physics,Skphysicsbody,我正在创建一个游戏,我正在尝试创建一个具有两个不同节点的角色,腿和躯干。我试着用一个固定的关节把它们连接起来,但是当我这样做的时候,躯干有时会在走动的时候从腿上滑下来。现在,我正尝试使用两个节点之间的距离限制来创建角色,希望它们现在不会彼此滑动,但是在启动时会不断崩溃。有什么想法吗? 这是我的密码 func CreateHero (){ soldierLegs.position = CGPoint(x: 405 , y: 139) soldierLegs.zPosition =
func CreateHero (){
soldierLegs.position = CGPoint(x: 405 , y: 139)
soldierLegs.zPosition = 1
soldierLegs.anchorPoint.x = 0.6
soldierLegs.anchorPoint.y = 0.7
let soldierLegsBody:SKPhysicsBody = SKPhysicsBody(rectangleOfSize:
soldierLegs.size)
soldierLegsBody.dynamic = true
soldierLegsBody.affectedByGravity = true
soldierLegsBody.allowsRotation = false
//body.restitution = 0.4
soldierLegsBody.categoryBitMask = BodyType.soldierL.rawValue
soldierLegsBody.contactTestBitMask = BodyType.enemy1.rawValue |
BodyType.enemy2.rawValue | BodyType.enemy3.rawValue |
BodyType.desertForegroundCase.rawValue
soldierLegs.physicsBody = soldierLegsBody
soldierTorso.position = soldierLegs.position
soldierTorso.zPosition = 2
soldierTorso.anchorPoint.x = 0.25
soldierTorso.anchorPoint.y = 0.1
let soldierTorsoBody:SKPhysicsBody = SKPhysicsBody(rectangleOfSize:
soldierTorso.size)
soldierTorsoBody.dynamic = true
soldierTorsoBody.affectedByGravity = true
soldierTorsoBody.allowsRotation = false
soldierTorsoBody.categoryBitMask = BodyType.soldierT.rawValue
soldierTorsoBody.contactTestBitMask = BodyType.enemy1.rawValue |
BodyType.enemy2.rawValue | BodyType.enemy3.rawValue |
BodyType.desertForegroundCase.rawValue
soldierTorso.physicsBody = soldierTorsoBody
let Joint =
SKPhysicsJointLimit.jointWithBodyA(soldierLegs.physicsBody!, bodyB:
soldierTorso.physicsBody!, anchorA: soldierLegs.position, anchorB:
soldierTorso.position)
Joint.maxLength = 0.01
self.addChild(soldierTorso)
self.addChild(soldierLegs)
self.physicsWorld.addJoint(Joint)
}
根据苹果公司的说法:
创建限制关节
class func joint(withBodyA: SKPhysicsBody, bodyB: SKPhysicsBody, anchorA: CGPoint, anchorB: CGPoint)
创建新的限制关节
anchorA
场景坐标系中第一个实体上的连接点
主播
场景坐标系中第二个实体上的连接点
在你的情况下,anchorA等于anchorB(同一点),没有限制,这一点会导致崩溃。根据苹果的说法:
创建限制关节
class func joint(withBodyA: SKPhysicsBody, bodyB: SKPhysicsBody, anchorA: CGPoint, anchorB: CGPoint)
创建新的限制关节
anchorA
场景坐标系中第一个实体上的连接点
主播
场景坐标系中第二个实体上的连接点
在您的情况下,anchorA等于anchorB(同一点),没有限制,这一点会导致碰撞。如何创建关节限制?我认为设置joint.maxLength值可以设置距离限制。你建议我如何设定限额@亚历山德罗登没有给出相同的分数,而是给出了不同的分数,并且给出了a和B之间的合理距离,这样它们就不会相互重叠。您可以打开skView.showsPhysics,以便查看所需的距离。如何创建关节限制?我认为设置joint.maxLength值可以设置距离限制。你建议我如何设定限额@亚历山德罗登没有给出相同的分数,而是给出了不同的分数,并且给出了a和B之间的合理距离,这样它们就不会相互重叠。您可以打开skView.showsPhysics,以便查看所需的距离。。