ios – 如何在精灵套件中创建进度条?

前端之家收集整理的这篇文章主要介绍了ios – 如何在精灵套件中创建进度条?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在Sprite Kit中创建自己的进度条.
我想我将需要图像 – 一个完全空的进度条和填充进度条.
我有这些图像,我把空白的一个填满了,他们是常规的SKSPriteNodes现在我不知道如何切割我需要的填充图像?

如何在某一点剪切SKSpriteNode图像?也许纹理?

解决方法

我会推荐看看 SKCropNode.对于SKCropNode的可视化帮助,请查看 Apple Programming Guide.我已经阅读了整个文档多次,这是一个非常好的阅读.

SKCropNode基本上是一个SKNode,您可以添加到您的场景中,但可以通过掩码裁剪其子节点.该掩码设置在SKCropNode的maskNode属性中.这样,您只需要一个纹理图像.我会将SKCropNode子类化以实现移动或调整掩码大小的功能,以便您可以轻松更新其外观.

@interface CustomProgressBar : SKCropNode

/// Set to a value between 0.0 and 1.0.
- (void) setProgress:(CGFloat) progress;

@end

@implementation CustomProgressBar

- (id)init {
  if (self = [super init]) {
    self.maskNode = [SKSpriteNode spriteNodeWithColor:[SKColor whiteColor] size:CGSizeMake(300,20)];
    SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"progressBarImage"];
    [self addChild:sprite];
  }
  return self;
}

- (void) setProgress:(CGFloat) progress {
  self.maskNode.xScale = progress;
}

@end

在你的场景中

#import "CustomProgressBar.h"

// ...

CustomProgressBar * progressBar = [CustomProgressBar new];
[self addChild:progressBar];

// ...

[progressBar setProgress:0.3];

// ...

[progressBar setProgress:0.7];

注意:这个代码不会移动掩码(所以sprite将被裁剪在任何一方),但我确定你得到的想法.

猜你在找的iOS相关文章