假设步长为 step(pixel),步速为 speed(pixel/frame),人物行走动画帧数为 n(frame)。

现在要把人物从坐标 0 移动到 100。

我们可以算出,这个过程是需要 100/speed 帧来完成的。

那么第 i 帧画面,人物在的位置:

  pos=i*100/speed

这个时候,需要画第几帧图象呢?

首先我们需要知道第 i 帧画面,也就是 pos 这个位置,人物已经走了t=|pos/step| 步 (t 取整了);

我们的小人正在走在第 t+1 步的 m=(pos-t*step) * 100% 时刻m 是一个 0~1 之间的数字。

f=|n*m| 就是我们在此时刻需要画的行走图片帧了。

加快行走速度,无非是加快了频率,不可能导致滑步的,因为一步迈出的距离根本不会变。
ps. 对于跑步、有腾空,轻微滑步是允许的,所以可以适当加大步长是允许的
————————————————
版权声明:本文为CSDN博主「pcmac」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pcmac/article/details/308400

注:

步长为 step(px),人物行走动画帧数为 n(帧数(Frames))(完成一个步长所需要的帧数),步速为 speed(px/frame)(step/n)(每帧移动的像素)。

例;步长为 2(pixel),步速为 1/15(px/frame)(每帧移动15分之一px),人物行走动画帧数为 30(frame)。

现在要把人物从坐标 0 移动到 100。

我们可以算出,这个过程是需要 100/speed =1500帧来完成的

那么第 i (87)帧画面,人物在的位置:

  pos=i*100/speed(他的公式我没看懂不知道是不是写错了)

pos=i*speed=87*1/15=87/15=5.8(px)

这个时候,需要画第几帧图象呢?(如果知道是当前总87帧,30帧一个循环,那此处就是|87/30|=取整2两个整循环,当前帧数就是87-30*2=27帧,,,貌似现在的假设是只知道位置,不知道多少帧)

首先我们需要知道第 87帧画面,也就是 pos(5.8(px)) 这个位置,人物已经走了t=|pos/step| 步 (t 取整了)(t=|5.8 /2|=(取整)2);

我们的小人正在走在第 t+1(3) 步的 ((pos-t*step) =(5.8-2*2)=1.8(px) 这1.8px是3步的1.8/2时刻=0.9*100%=90%) 时刻m 是一个 0~1 之间的数字。

f=|n*m|=|30*90%|=27(frame)就是我们在此时刻需要画的行走图片帧了(和上面知道总帧数得到的结果是一样的,算是相互验证)。

(如果问题请留言)

提示:这种公式用于操作每一个动画单帧的方法,但如果你的动画帧是确定的,30帧,(重点)而且动画帧的时间是设定好的(1s----1秒播放30帧以确定)那么速度这个动画的移动速度就固定了,或者说 30帧动画是一个整体,无法分割,就无法用上面的方法。简单说下:动画帧(30frame)确定,时间(1s)确定,步长(20px)应该也是确定的, 那么速度就是 =步长/时间,(v=s/t,v=20px/s),那么现在如果实现不滑步,,,播放动画和移动分开控制,,,动画调用频率设置为动画播放时间(1s)循环调用,这就使人物连贯原地走起来了,我们知道这个人物动画的速度是20px/s,那就在来一个控制器,控制动画整体,每20px/s的速度移动就可以了,,假设

移还是0-100,那么这个控制移动的频率我们可以设置为0.1s,位置距离等于速度*时间,s1=v*t1 时间每0.1进行累加(t=t+0.1)

当t1=0.1,当前的位置就是s1=20*0.1=2px;

t1=0.2,s1=0.4;

t1=0.3,s1=0.6

t1=1,s1=2;

所以时间等于播放帧时间,一秒后的位置也就是一个步长,s1=(v)*t1=(s/t)*t1=(20/1)*1=20px;

t1=1.2,s=2.4;

.....

具体的情况还要具体分析,这只是大方向,,,

角色移动的步长、步速与滑步现象相关推荐

  1. 6步速通:修复损坏的word文件

    前两天,老师找到我,想让我帮忙修复一个打不开的docx文档.症状大概是这样: 打开文件的时候花了较长时间,并且显示了乱码,并且老师使用WPS自带的文档修复功能也无法修复. 遇到这个情况,到底怎么办呢? ...

  2. 高效阅读源码的五步速读法

    阅读代码是程序员最重要的技能之一,我们每天都在读同事的代码或者第三方库的代码,那怎么高效的阅读代码呢?分享下我的源码阅读方法. 我的阅读源码的方法分为五步: 第一步,通过文档和测试用例了解代码的功能 ...

  3. dnf搬砖代码Python_DNF:95版本搬砖角色怎么提高移速,不花钱就花时间吧

    大家好,小编最近在整理95版本搬砖完全攻略,但是因受金币改版等内容影响较大,所以陆续内容将在金币改版后陆续放出,喜欢的可以先点下关注. 今天主要是给大家科普下DNF中怎么提高最多的移速.因为金币改版后 ...

  4. matlab线性搜索确定步长,使用非精最速下降法确线搜索armijo算法确定步长的.doc...

    使用非精最速下降法确线搜索armijo算法确定步长的.doc 数学与计算科学学院实验报告实验项目名称使用非精确线搜索ARMIJO算法确定步长的最速下降法所属课程名称最优化方法实验类型算法编程实验日期2 ...

  5. 角色控制的相位神经网络

    角色控制的相位神经网络 我们提出了一个使用全新网络结构的实时角色控制机制,命名为相位神经网络.在这个网络结构中,权重通过一个以相位为输入的循环程序计算机.我们的系统也将用户控制,先前角色状态,场景做为 ...

  6. 分词消除歧义_角色标题消除歧义

    分词消除歧义 折磨数据,它将承认任何事情 (Torture the data, and it will confess to anything) Disambiguation as defined i ...

  7. 伦巴时间步的动作要领_军训动作要领已到,请签收

    点击上方蓝字关注我吧军训动作要领已到,请签收 小20的军训已经开始两天了! 经过两天的辛苦训练, 相信同学们已经对训练项目有所了解, 但是要做到很好,还需要不断练习. 趁着空闲时间,温习一下已学的 提 ...

  8. 18 MM配置-BP业务伙伴-定义业务伙伴角色分组

    业务背景:定义业务伙伴角色分组 事务码: SPRO SPRO路径:跨应用组件->SAP业务伙伴->业务合作伙伴->基本设置->商业伙伴角色->定义业务伙伴角色分组 第1步 ...

  9. ASP.NET Core 2.0身份和角色管理入门

    目录 介绍 身份验证和授权 身份验证 授权 背景 先决条件 使用代码 第1步:创建数据库 第2步:创建ASP.NET Core 更新appsettings.json 步骤3:在Startup.cs文件 ...

最新文章

  1. JavaScript 中 void(0) 的含义
  2. juniper srx 出口负载均衡_直流微电网负载均流控制的新策略
  3. windowSoftInputMode属性详解
  4. 【Android 属性动画】属性动画 Property Animation 与 视图动画 View Animation 区别
  5. 「新闻」Google Science Fair
  6. 入选《2021爱分析·区域性银行数字化厂商全景报告》,网易云信助力南京银行打造转型标杆
  7. 【APICloud系列|21】使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。
  8. r矢量球坐标系旋度_三个常用坐标系的认识及矢量旋度表达式的证明
  9. 学习笔记_vnpy实战培训day04
  10. MFC最详细入门教程[转载]
  11. 《OpenGL编程指南(原书第9版)》——第1章 1.0OpenGL概述
  12. 微信小程序 — 公立医院申请
  13. @Resource和@Autowired注解的区别
  14. 联想台式机快捷键(F1~F12)取消按Fn,设置为标准功能键
  15. 计算机怎么取消u盘启动程序,如何设置电脑启动项的为U盘启动,小编教你如何设置电脑启动项的为U盘启动...
  16. 计算机上怎样保护c盘,6个方法教你释放你的C盘空间
  17. ElasticSearch中Transient与Persistent的区别
  18. Google Play In-app Billing
  19. 行为分析(十):姿态估计部分(六):人体关键点(keypoints)生成算法综述
  20. 【PSO三维路径规划】粒子群算法融合鸡群算法多无人机三维路径规划【含Matlab源码 1792期】

热门文章

  1. WMS仓库管理系统解决方案,实现仓库管理一体化
  2. MongoDB Java API操作很全的整理以及共享分片模式下的常见操作整理
  3. Windows 10 家庭版-解决:VMware Workstation与Decive/Guard不兼容
  4. linux wifi让手机上网
  5. 埃斯顿冲压凸轮控制器pac10报警a13故障处理
  6. 换新电脑如何快速将数据迁移?
  7. VirtualBox命令行VBoxManage
  8. python词频统计完整步骤_python实现词频统计(wordcount)函数
  9. uni-app APP图标配置 添加图片一闪而过
  10. 微信公众号实现定时提醒功能