思路:
1.用scenekit来创建红包模型 先创建一个长方体,此长方体厚度很薄 然后设置模型的contents为红包的图片
2.用仿真框架让红包掉下来
3.多设置几个源头 但正上方不要设置 否则屏幕经常会给一个红包遮住
关键性代码:
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图效果太差,只好让各位自行下载
代码 希望可以随手点个喜欢
作者:李境沛
链接:https://www.jianshu.com/p/4c20612206da