用Easing函数实现碰撞效果

用Easing函数实现碰撞效果

工程中需要的源码请从这里下载:

https://github.com/YouXianMing/EasingAnimation

源码:

//
//  ViewController.m
//  EasingView
//
//  Created by YouXianMing on 15/1/17.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "ViewController.h"
#import "YXEasing.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // 显示的view
    UIView *showView            = [[UIView alloc] initWithFrame:CGRectMake(100, -100, 100, 100)];
    showView.backgroundColor    = [UIColor clearColor];
    showView.layer.borderColor  = [UIColor redColor].CGColor;
    showView.layer.borderWidth  = 4.f;
    showView.layer.cornerRadius = 50.f;
    [self.view addSubview:showView];

    // 关键帧动画
    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

    // 设置值
    [animation setValues:[YXEasing calculateFrameFromPoint:showView.center
                                                   toPoint:CGPointMake(showView.center.x, showView.center.y + 565)
                                                      func:BounceEaseOut
                                                frameCount:100]];

    // 设置持续时间
    animation.duration  = 1.f;

    // 执行动画效果
    showView.center = CGPointMake(showView.center.x, showView.center.y + 565);
    [showView.layer addAnimation:animation forKey:nil];
}

@end
时间: 2024-09-17 04:24:08

用Easing函数实现碰撞效果的相关文章

PHP的unset()函数的实际效果

强烈建议大家没事就分享这种技术文章 PHP变量对内存的开销与释放,unset()是否真的释放内存.转自:PHP的unset()函数的实际效果 测试代码如下: 复制PHP内容到剪贴板 PHP代码: for ( $i = 1; $i < 100; $i++ ) {         $str = str_repeat('01234567', $i);         $a = memory_get_usage();         unset($str);         $b = memory_ge

jQuery实现的分子运动小球碰撞效果_jquery

本文实例讲述了jQuery实现的分子运动小球碰撞效果.分享给大家供大家参考,具体如下: 先看效果图吧,因为小球是运动状态的,不好截图,这里就先大体画了一下路线,表示大体意思吧,如果想看真实的效果,自己粘贴下去运行: 小球有点小哟,嘿嘿,没有对细节进行详细的处理,如果像让它完美一点,自己处理下吧!这里是模拟的理想状态下的,没有摩擦力与组里的分子碰撞运动,高科技哟~~~~~~mu~a 代码也没有整理,如果有心的话,把它整理成面向对象形式的吧! 代码如下: <!DOCTYPE html PUBLIC

原生js实现jquery函数animate()动画效果的简单实例_javascript技巧

通过在公司一个月的实习,慢慢的对css跟html算是比较熟悉了,这几天开始研究js,今天用js写了一个jquery的animate函数,测试了下,性能还可以.个人觉得jquery并不是万能的,因为是个框架,所以有些东西写的比较死,就像animate函数一样,可选的参数不多有时候可能并不能实现我们想要的效果. 注释的部分是用来测试用的,写代码的过程并不是十分顺利,因为用js平时用的不是很细,都是大体知道方法,也用过,但等到真正要实现动画函数的时候,细枝末节写错了就可能把人难住了. 函数里面有几个参

Maya粒子制作碰撞效果

创建被关联粒子的模型和创建碰撞物体的模型,推荐使用这个附件模型,当然也可以用平面作碰撞物体用圆锥作粒子物体文件. 首先如图1建立一个模型. 仿照下面的图制作发射器,创建一个omni emission. 选择那个球形渲染方式,因为这样更容易观察动画的效果,更容易调整动画,选择被发射的粒子,按照下图修改它的属性,注意size参数,将其调小一点. 按住shift键,选择粒子和门,选择particle菜单的goal,按照下图设置,播放动画就会看到粒子被门吸引. 因为门是由好多个部分组成的,所以需要按照上

3DSMAX制作动力学中的碰撞效果

一.绘制场景 1.启动3dmax9.0,单击"创建"命令面板,点击"几何体"按钮,在下拉列表框中选择"标准基本体"项.点击"长方体"按钮在视图中绘制四块长方体Box01.Box02.Box03.Box04,大小可以随机定义,主要是用来搭建两个球体运动一个场景,效果如图1所示. 2.继续在"几何体"创建面板中点击"球体"按钮,在视图中绘制两个球体Sphere01.Sphere02,调整其位

js下通过getList函数实现分页效果的代码_javascript技巧

用js实现页面的分页: 复制代码 代码如下: <table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#D2EBF3;" height="32"> <tr><td align="right" bgColor="#

用缓动函数模拟物理动画

1.缓动函数简介      <1>缓动函数的动画效果是建立在CALayer层级的关键帧动画基础之上           也就是说用普通的UIView的Animation是无法直接实现缓动函数      <2>缓动函数是一系列模拟物理效果(如抛物线)方程式的统称,用以计算给定两点之间的插值      <3>两点之间插的值越多,效果越好,但是会耗费更多的性能      <4>只有理解了缓动函数的原理才有可能写出自己想要的效果   学习来自:<极客学院>

jQuery插件fullPage.js实现全屏滚动效果_jquery

本文实例为大家分享了全屏滚动插件fullPage.js的具体使用方法,供大家参考,具体内容如下 0.01 基本演示  的HTML 布局 以及js 代码 //需要连接 连接的三个文件 <link rel="stylesheet" href="css/jquery.fullPage.css"> //css文件 <script src="js/jquery-1.8.3.min.js"></script> //jQue

jQuery的animate函数学习记录_jquery

很久之前就对jQuery animate的实现非常感兴趣,不过前段时间很忙,直到前几天端午假期才有时间去研究. jQuery.animate的每种动画过渡效果都是通过easing函数实现的.jQuery1.4.2中就预置了两个这样的函数: easing: { linear: function( p, n, firstNum, diff ) { return firstNum + diff * p; }, swing: function( p, n, firstNum, diff ) { retu