Egret社区
1银子
egret.Tween 缓动能实现抛物线运动么?求大侠给个例子

分享到 :
2 人收藏

10 个回复

倒序浏览
guoshaorui  超级斑竹 | 2014-8-21 12:01:58
你这个不适合用Tween来实现,原因:
1.要实现抛物线运动,必须同时控制x坐标和y坐标
2.虽然Tween可以用to({x:100,y:100},500)来同时控制x坐标和y坐标,但在同一个缓动中,你只能设置一个Ease函数,也就是说,用Tween只能让你的x坐标和y坐标按照相同的定义去运动。但根据抛物线原理,水平是需要匀速运动,垂直方向上是由重力的加速运动,那显然一个Ease函数是满足不了这个要求的
louisha  登堂入室 | 2014-8-21 14:23:12
guoshaorui 发表于 2014-8-21 12:01
你这个不适合用Tween来实现,原因:
1.要实现抛物线运动,必须同时控制x坐标和y坐标
2.虽然Tween可以用to({ ...

嗯只能没帧去做了。可是不同机器帧频不一样导致绘制的速度也不一样纠结,就算用时间戳速度还是有误差,毕竟还是帧频问题
Wander  官方团队 | 2014-8-21 14:29:25
louisha 发表于 2014-8-21 14:23
嗯只能没帧去做了。可是不同机器帧频不一样导致绘制的速度也不一样纠结,就算用时间戳速度还是有误差,毕 ...

抛物线运动在帧率不同下也可以结果一致的


参见公式

H = v0 * t + 1/2 * g * t^2
louisha  登堂入室 | 2014-8-22 17:20:00
Wander 发表于 2014-8-21 14:29
抛物线运动在帧率不同下也可以结果一致的

已经用逐帧绘制+时间戳渲染唉,否则低配机真的很郁闷,我看到一个小米,帧频居然10以下
andy_lin_007  登堂入室 | 2015-4-8 20:05:45
性能会有影响
rainvision  初学乍练 | 2015-4-10 09:35:39
感觉Egret的Tween的设计不如cocos2dx的Action好用。。个人观点。。
lb123  圆转纯熟 | 2015-4-10 10:32:12
louisha 发表于 2014-8-22 17:20
已经用逐帧绘制+时间戳渲染唉,否则低配机真的很郁闷,我看到一个小米,帧频居然10以下 ...

逐帧绘制+时间戳渲染如何实现?是不是通过时间戳判断是否在低帧下,如果是在低帧下就快进,高帧下正常速度。
csujin  圆转纯熟 | 2015-4-10 14:32:53
lb123 发表于 2015-4-10 10:32
逐帧绘制+时间戳渲染如何实现?是不是通过时间戳判断是否在低帧下,如果是在低帧下就快进,高帧下正常速 ...

就是把本帧和上一帧的时间差值计算出来,然后每次计算都乘上这个差值

比如当前速度为1000 pixel/s,也就是1秒钟移动1000像素,那么如果时间差值为1毫秒,那么就移动  1000 pixel/s*0.001s=1pixel。假设时间差能稳定在1ms,那么容易得到1秒钟可以移动1000像素。
同理,如果帧率非常低,时间差达到了1s(只是举个例子,当然这么大的时间差不太可能出现),那么移动的距离则为  1000pixel/s*1s=1000 pixel.假设时间差能稳定在1s同样可以得到1秒钟可以移动1000像素。
容易看出,不管帧率高还是帧率低,1秒钟都是移动1000像素,所以看起来的效果是一样的(只是帧率低跳动会比较厉害)
lb123  圆转纯熟 | 2015-4-13 13:53:39
csujin 发表于 2015-4-10 14:32
就是把本帧和上一帧的时间差值计算出来,然后每次计算都乘上这个差值

比如当前速度为1000 pixel/s,也就 ...

这个办法好,不管帧率怎么变,移动的距离都一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部