我想开发一个简单的示例项目,其中我有一个播放器图像,我有一个通过简单的UIViewAnimation跳转这个播放器的逻辑,现在我想让这个播放器对象跑或者走任何帮助,我们都会提前表示感谢。
发布于 2012-09-20 08:23:10
嗨,这里还有一个例子,我希望这能帮助你理解.
样本代码这里
发布于 2012-09-20 07:49:10
如果您想使用UIViewAnimation来完成这个任务,那么您必须创建许多图像,称为imageview动画,您必须在其中显示每个正在运行的图像或行走图像。这会给人一种印象,那就是图像是在行走或奔跑。那么您就不需要openGL或cocos2d了。
顺便问一下,你想达到什么目的?
发布于 2012-09-20 08:16:49
在2d游戏中这样做的经典方法是为玩家角色制作一个带有run动画帧的spritesheet。spritesheet是由子图像网格组成的位图图像。每个子图像持有运行动画的单个帧。要向前播放run动画,您需要创建一个子图像列表,以显示每个帧号。运行动画将从帧0开始,并以给定的帧速率播放。您可以创建一个定时器,它会在每个帧的末尾周期性地触发。当计时器触发时,增加帧号。接下来,使用帧号索引到子图像列表中,以选择当前动画帧要显示的正确子图像。使包含播放机图像的视图无效,当系统要求重绘播放机视图时,绘制当前动画帧的子图像。运行动画在一个循环中重复,只要播放器正在运行。要循环动画,必须在计时器触发时帧计数器增加后检查它的值。如果帧计数器值等于运行动画的动画帧数,则将帧计数器重置为零。然后使用帧计数器对动画的有序子图像列表进行索引。播放机视图还必须移动到每次动画计时器触发时播放机运行的方向。通过将动画帧之间的时间乘以播放机速度来计算移动播放机视图的距离。
为了有效地绘制当前的动画帧,将子图像存储为NSValue对象,其中包含CGRect在NSArray中。每个CGRect都是包含一个动画帧的子矩形。子矩形可用于从spritesheet中剪辑动画帧,以便在将spritesheet绘制到player视图时只绘制一个动画帧。必须根据子矩形的原点绘制spritesheet,这样动画框架的左上角与player视图的左上角重合。帧计数器作为索引从数组中查找当前动画帧。
https://stackoverflow.com/questions/12508065
复制相似问题