2016-04-01 1 views
1

В настоящее время у меня есть сцена, где куб падает на пол в сцену. Я анимировал куб, чтобы двигаться по оси х по полу, когда он делает, хотя он немного опускается на пол, а затем репозиции на полу.Я запрограммировал куб, чтобы скользить по полу в scenekit для iOS, он опускается на пол, хотя

Вот лишь некоторые из кода:

// 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); 

Может кто-то помочь мне выяснить, почему куб сливы? Если вы не можете понять, почему, может быть, вы могли бы предоставить пример кода рабочего пола, на котором может ходить персонаж? (в объективном c, надеюсь, но я могу перевести с быстрой, если потребуется)

+0

является ли куб масштабированным? Например, вы отредактировали 'cube.scale'? –

+0

@ProBlaster нет, я этого не сделал. –

+0

о том, сколько (в% от куба) ваш куб падает через пол до того, как он снова позиционируется? –

ответ

0

Используя советы ProBlaster, я использовал [SCNPhysicsBody applyForce] вместо и решить эту проблему.

0

Я думаю, что разрядная маска вашего пола и битбакс столкновения вашего куба должны быть одинаковыми вы можете сделать это (в быстром) как это:

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

Это не сработало, оно все равно делает то же самое вещь. : -/ Спасибо за ответ, хотя. –

+0

Попробуйте сделать физическую форму пола типа статическим и вашим кубом типа динамическим –

+0

Я тоже это пробовал. –

Смежные вопросы