Ich erstelle ein Spiel und ich versuche, einen Charakter zu erstellen, der zwei verschiedene Knoten hat, die Beine und der Torso. Ich habe versucht, sie mit einem festen Gelenk zu verbinden, aber wenn ich das tue, rutscht der Rumpf manchmal von den Beinen, während er sich bewegt. Jetzt versuche ich, den Charakter mit einem Distanzlimit zwischen den 2 Knoten zu erstellen, in der Hoffnung, dass sie jetzt nicht voneinander wegrutschen werden, aber es stürzt beim Start jeder Idee ab? hier ist mein CodeAbsturz beim Start, Fehler mit SKsphysics Joint
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)
}
Wie erstelle ich eine gemeinsame Grenze? Ich dachte, dass die Festlegung des joint.maxLength-Wertes ein Entfernungslimit festlegte. Wie schlägst du vor, dass ich das Limit erstelle? @alessandro – gkolman
Geben Sie nicht die gleichen Punkte, geben Sie eine andere Punkte und geben Sie einen angemessenen Abstand zwischen A und B, so dass sie einander nicht überlappen. Sie können skView.showsPhysics einschalten, um die benötigte Entfernung zu sehen. –