canvas 动画循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas 动画循环相关的知识,希望对你有一定的参考价值。

参考技术A 动画的绘制就是一个重复的过程,其原理就是重复的绘制和清除,就如同下面这张图形

主要有三种:

[图片上传中...(QQ20171228-194308-HD.gif-2daec8-1514461554620-0)]
[图片上传中...(QQ20171228-194308-HD.gif-9c4529-1514461563882-0)]

我们在进行绘图时需要给定图形的位置和宽高.在进行直线运动的时候,我们更改横向或纵向的位置即可

下面我们来写一个直线运动的动画,当方块触碰到边框时,运动方向改变,简称碰壁反弹

最后显示:

如果需要图形按圆周运动,需要通过三角函数计算图形的位置。

我们来模仿写一个球绕中心点的旋转,有三种方式

最后效果:

通过改变坐标系实现小球做圆周运动的效果,坐标系在上一次改变基础上变化

通过显示圆的不同小段边框显示圆周运动

通过三角函数改变球的x,y的值

有时候我们需要背景视图滚动的效果,例如微信的打飞机

我们绘制图片一定要预加载

最后效果:

c_cpp 使用Canvas永远循环动画(hacky方式)


#import "CSLoopingAnimationView.h"

@implementation CSLoopingAnimationView

- (void)startCanvasAnimation {

    [super startCanvasAnimation];

    [NSObject cancelPreviousPerformRequestsWithTarget:self
                                             selector:@selector(startCanvasAnimation)
                                               object:nil];
    [self performSelector:@selector(startCanvasAnimation)
               withObject:nil
               afterDelay:self.duration];
}

@end

#import <UIKit/UIKit.h>
#import "CSAnimation.h"
#import "CSAnimationView.h"

@interface CSLoopingAnimationView : CSAnimationView

@end

以上是关于canvas 动画循环的主要内容,如果未能解决你的问题,请参考以下文章

html5 canvas首屏自适应背景动画循环效果怎么插入

为啥这个基本的 Canvas 动画不流畅?

html5 canvas首屏自适应背景动画循环效果怎么插入

华为快应用在setInterval中绘制canvas动画卡顿,怎么破

怎么设置canvas动画为背景

canvas动画气球