如何在iOS中使用bitmaps / rgb数据制作animation

我正在用iPhone编程一个游戏,并且我有一个想要animation的图像,比如一个位图中的一个走路的人。 位图随时间变化。 如何有效地将位图添加到屏幕/ UIView?

加载图像序列的最有效的方法是使用PVR格式的图像并将其加载为OpenGL纹理。 PVR图像支持多种格式,包括原始的32位RGB数据。

我把这个function包装在一个给你一个GLImageView的库中,让你指定一个文件名列表,它将有效地stream入内存并按顺序播放:

https://github.com/nicklockwood/GLView

看看附带的例子,看看它是否会满足您的需求。 该文档包含以正确格式创build图像的说明等。

你可以用CAKeyframeAnimation来做到这一点。

我只是写了这个,并没有testing它,但应该让你在正确的道路上。 将所有帧加载到NSArray中,然后将animation的“值”设置为帧数组。

NSArray *walkFrames = [[NSArray arrayWithObjects: [UIImage imageNamed:@"walk.00000.png"], [UIImage imageNamed:@"walk.00001.png"], [UIImage imageNamed:@"walk.00002.png"], [UIImage imageNamed:@"walk.00003.png"], [UIImage imageNamed:@"walk.00004.png"], [UIImage imageNamed:@"walk.00005.png"], [UIImage imageNamed:@"walk.00006.png"], [UIImage imageNamed:@"walk.00007.png"], [UIImage imageNamed:@"walk.00008.png"], [UIImage imageNamed:@"walk.00009.png"], nil] retain]; CAKeyframeAnimation *anim = [CAKeyframeAnimation animation]; anim.keyPath = @"contents"; anim.duration = 2.f; anim.values = walkFrames; anim.calculationMode = kCAAnimationLinear; anim.repeatCount = HUGE_VAL; [myView addAnimation:anim forKey:@"myFlipAnimation"];