2016-04-01 25 views
1

olmasına rağmen zemine gömülüyorum. Şu anda bir küpün scenekit içinde bir zemine düştüğü bir sahnem var. Küpün zemindeki x ekseninde hareket etmesini sağladım, zemine girdiğinde biraz zemine gömülecek ve daha sonra zeminin üstünde olacak şekilde yeniden yerleştirilecek.iOS için scenekit içinde zemine kaymak için bir küp programladım,

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

biri bana neden küp lavabolar öğrenmek yardımcı olabilir:

İşte sadece kod bazı var? Nedenini anlayamıyorsanız, belki bir karakterin üzerinde yürüyebileceği bir çalışma katının örnek kodunu verebilir misiniz? (inşallah c umarım, ama ihtiyacım olursa çabucak çeviri yapabilirim)

+0

küp ölçekli mi? örneğin, 'cube.scale' düzenlediniz mi? –

+0

@ProBlaster no, ben yapmadım. –

+0

, küpün yeniden konumlandırılmadan önce küpün tabanından ne kadar (küpün% cinsinden) düştüğünü gösterir? –

cevap

0

ProBlaster öğüdünü kullanarak, kullanılan [SCNPhysicsBody applyForce] yerine ve bu sorun çözüldü.

0

Bulunduğunuz yerdeki kategori bit maskesi ve küpünüzün çarpışma bit maskesi aynı olmalıdır (hızlıca) böyle:

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

Bu işe yaramadı, hala aynı şey. : -/ Cevabınız için teşekkürler. –

+0

Zemin fizik şeklinizi sabit tipte ve dinamik –

+0

küpünüzü yapmayı deneyin. –