当前位置: 首页 > news >正文

不同机器下,游戏编程如何保证物体移动具有相同的速度

在游戏编程里,为了实现物体平滑的移动,我们会在Tick里使用位移函数,使得物体在空间中得以移动,例如:UE4中的AddActorLocalOffset函数等,但是,这会有一个问题,每台机器的性能不同,造成了相同的代码在不同的机器上运行完一个Tick的时间也就不同,此时,不同机器间的FPS就会不同,那么造成的后果就是不同机器下,物体位移的速度就不同,如何解决这个问题呢?

其实这个问题可以用数学的方法进行解决,问题用形式化语言表达则是,在不同的δt(每一个Tick的运行时间)下,在相同的时间t内,要让不同机器下的物体位移X相同,即位移的平均速度v相同。可以列出(1)式,其中的δx是我们可以在Tick中设置的每一帧进行的位移:

(1)

通过进一步分析我们可以知道,t/δt 是 时间t内运行的帧数,这是我们不能控制的量,我们需要想办法根据不同机器下来调整δx使得等式恒成立,直观来说,运行速度快的机器,每秒帧数高,那么每个帧分到的位移就要小。而我们知道,而δx=v*δt ,其中v就是位移的平均速度,v在等式两边都是相等的。则(1)式可变为(2)式:

(2)

那么,到这个地方我们就可以看到了解决问题的办法,我们把不同机器下的δt 与固定的 v 相乘的结果作为 δx的输入,这样就可以实现在不同机器下物体移动具有相同的速度了。

转载于:https://www.cnblogs.com/Leonhard-/p/6511807.html

相关文章:

  • 量子通信是个鸡肋,没有证券分析师说得那么好
  • 微信,QQ这类IM app怎么做——谈谈Websocket
  • DRF如何序列化外键的字段
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • iOS开发UI篇—CAlayer层的属性
  • Surrogate data 代理数据
  • 延迟
  • 网络设备
  • 马哥2016全新Linux+Python高端运维班第二周作业
  • 如何搭建配置php开发环境
  • 选择阿里云数据库HBase版十大理由
  • 使用airbnb的eslint
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 《编码的法则--C++实用经验》
  • 什么是mybatis?
  • 【面试系列】之二:关于js原型
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • flutter的key在widget list的作用以及必要性
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • k8s 面向应用开发者的基础命令
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP的类修饰符与访问修饰符
  • Python 反序列化安全问题(二)
  • scrapy学习之路4(itemloder的使用)
  • 那些被忽略的 JavaScript 数组方法细节
  • 数组的操作
  • 学习ES6 变量的解构赋值
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一个完整Java Web项目背后的密码
  • 用jQuery怎么做到前后端分离
  • 鱼骨图 - 如何绘制?
  • 在electron中实现跨域请求,无需更改服务器端设置
  • C# - 为值类型重定义相等性
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (2015)JS ES6 必知的十个 特性
  • (31)对象的克隆
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (九十四)函数和二维数组
  • (离散数学)逻辑连接词
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三) diretfbrc详解
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (四)linux文件内容查看
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)原始图像数据和PDF中的图像数据
  • .htaccess 强制https 单独排除某个目录
  • .NET Standard 的管理策略