ARKit制作红包雨效果

2018-05-07 15:01:28 浏览数 (1)

新年快到了!给大家献上一个3D红包雨效果!

#####思路:

代码语言:txt复制
1.用scenekit来创建红包模型  先创建一个长方体,此长方体厚度很薄 然后设置模型的contents为红包的图片
2.用仿真框架让红包掉下来
3.多设置几个源头 但正上方不要设置  否则屏幕经常会给一个红包遮住

#####关键性代码:

代码语言:txt复制
geometerNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeDynamic shape:nil];
    
//设置力
NSInteger X = (NSInteger)(arc4random_uniform(9)) - 4;
    
NSInteger Y = (NSInteger) (1 );
    
NSInteger Z = (NSInteger)(arc4random_uniform(9)) - 4;
    
[geometerNode.physicsBody applyForce:SCNVector3Make(X, -Y, Z) atPosition:SCNVector3Make(0.05, 0.05, 0.05) impulse:YES];

static:静态物体不会移动,不会受到力的影响,其他物体击飞不了它, 比如游戏里的墙壁。

dynamic:会受到力的影响,比较小的物体,比如游戏里的野怪。

kinematic:会移动 但不受力影响的物体,比如游戏里的怎么打都打不坏的大门。

在SceneKit中所有的物理对象都是SCNPhysicsBody, 然后需要把该对象绑定到SCNNode的physicsBody实例属性, 然后物理引擎就可以进行仿真模拟了。

录制gif图效果太差,只好让各位自行下载

代码 希望可以随手点个

gif

0 人点赞