2016-04-01 18 views
1

ich zur Zeit eine Szene, wo ein Würfel auf einem Fußboden in scenekit fallen gelassen wird. Ich animierte den Würfel, um sich auf der x-Achse über den Boden zu bewegen, wenn er es tut, obwohl er ein wenig in den Boden sinkt und sich dann neu positioniert, um oben auf dem Boden zu sein.ich einen Würfel programmiert über den Boden in scenekit für iOS schieben, sinkt es in den Boden, obwohl

Hier ist nur ein Teil des Codes:

// create floor 
SCNFloor *mainFloor = [SCNFloor floor]; 
SCNNode *floorNode = [SCNNode nodeWithGeometry:mainFloor]; 
floorNode.position = SCNVector3Make(0.0, -4.0, 0.0); 
[myScene.rootNode addChildNode:floorNode]; 
SCNPhysicsShape *ground = [SCNPhysicsShape shapeWithGeometry:mainFloor options:nil]; 
SCNPhysicsBodyType kin = SCNPhysicsBodyTypeKinematic; 
SCNPhysicsBody *solid = [SCNPhysicsBody bodyWithType:kin shape:ground]; 
floorNode.physicsBody = solid; 
myScene.physicsWorld.gravity = SCNVector3Make(0.0, -9.8, 0.0); 

Kann mir jemand helfen, warum die Würfel Waschbecken herausfinden? Wenn Sie nicht herausfinden können, warum, könnten Sie vielleicht Beispielcode für eine Arbeitsfläche bereitstellen, auf der ein Charakter laufen kann? (in objectives c hoffentlich, aber ich kann von swift übersetzen, wenn es notwendig ist)

+0

skaliert wird der Würfel? zB hast du 'cube.scale' bearbeitet? –

+0

@ProBlaster nein, habe ich nicht. –

+0

Wie viel (in% des Würfels) fällt Ihr Würfel durch den Boden, bevor er neu positioniert? –

Antwort

0

ProBlaster Rat benutzen, habe ich [SCNPhysicsBody applyForce] statt, und dass das Problem gelöst.

0

Ich denke, dass die Kategorie Bitmaske Ihres Bodens und die Kollision bitmask Ihres Würfels sollte gleich sein können Sie so (in swift) dies wie:

floorNode.physicsBody.categoryBitMask = 3 
cubeNode.physicsBody.collisionBitMask = 3 
+0

, die nicht funktioniert, tut es immer noch die gleichen Ding. : -/ Danke für die Antwort obwohl. –

+0

Versuchen Sie, Ihre Bodenphysik Form des Typs statisch und Ihren Würfel des Typs dynamisch –

+0

Ich habe das auch versucht. –