SpriteKit 的二维物理水模拟
将 DynamicWaterNode.h、DynamicWaterNode.m、Droplet.png 和 Droplets.fsh 添加到您的项目中
添加到您的场景中
- (void)didMoveToView:(SKView *)view {
self.waterNode = [[DynamicWaterNode alloc]initWithWidth:self.size.width
numJoints:100
surfaceHeight:kSurfaceHeight
fillColour:[UIColor colorWithRed:0 green:0 blue:1 alpha:0.5]];
self.waterNode.position = CGPointMake(self.size.width/2, 0);
[self addChild:self.waterNode];
}
在场景的更新方法中执行模拟的步骤。请参阅示例项目以获取固定时间步实现的示例
[self.waterNode update:dt];
在更新模拟之后调用 render:。每帧只调用一次 render。
[self.waterNode render];
制作飞溅效果
[self.waterNode splashAtX:100 force:20 width:20];
可以更改 DynamicWaterNode 的各种属性来控制水的感受。示例项目中包含一个设置屏幕,您可以在其中更改这些设置以查看其效果。