如何使用 sprite kit 在水面上创建 2D 波纹效果。
就像我有一个场景,其中包括 2D 仍然是水,当点击它时,小圆圈会按比例显示并消失,比如 5-6圆圈平行缩放给人一种涟漪的感觉实际上并没有对水做任何事情只是在它上面创建图像。
我想知道解决这个问题的最佳方法是什么。我怎样才能实现这样的目标。有什么想法吗?
最佳答案
在你希望创建波纹的节点中,做这样的事情
NSTimeInterval singleRippleDuration = 1.0f;
CGFloat ripleEndScale = 3.0f;
NSTimeInterval timeBetweenRipples = 0.3f;
NSUInteger numberOfRipples = 5;
SKAction* scaleUpAction = [SKAction scaleTo:ripleEndScale duration:singleRippleDuration];
SKAction* fadeOutAction = [SKAction fadeOutWithDuration:singleRippleDuration];
SKAction* rippleAction = [SKAction group:@[scaleUpAction,fadeOutAction]];
SKAction* createRipple = [SKAction runBlock:^{
//Create your ripple node somehow (SKShapeNode or SKSprite will do)
//set it to a desired position
[rippleNode setPosition:desiredPosition];
//Set scale to 0 so it scales from point
[rippleNode setScale:0.0f];
[rippleNode runAction:createRipple];
[self addChild:rippleNode];
}];
SKAction* wait = [SKAction waitForDuration:timeBetweenRipples];
[self runAction:[SKAction repeatAction:[SKAction sequence:@[createRipple,wait]] count:numberOfRipples]];
关于ios - 使用 sprite 套件创建 2d 波纹效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21524872/