Box2D 是完全确定性的吗?

2024-01-25

我正在使用 LibGDX 和 Box2D 编写 Android 游戏。我计划为其添加回合制多人游戏功能。

现在,如果在两个客户端上我以相同的速率和相同的时间步长步进 Box2D 世界,并使用完全相同的初始参数在两个客户端上开始模拟,当模拟结束时,两个模拟的最终状态是否完全相同相同?换句话说,Box2D 模拟是否具有完美的确定性?

如果不是,则意味着每次模拟结束时,充当主机的一个客户端都必须告诉另一个客户端丢弃其最终模拟结果并使用它。


官方常见问题解答报价

官方常见问题解答有一个引用证实了您的推论http://web.archive.org/web/20160131050402/https://github.com/erincatto/Box2D/wiki/FAQ#is-box2d-确定性 http://web.archive.org/web/20160131050402/https://github.com/erincatto/Box2D/wiki/FAQ#is-box2d-deterministic:

Box2D 是确定性的吗?

对于相同的输入和相同的二进制文件,Box2D 将重现任何模拟。 Box2D 不使用任何随机数,也不基于随机事件(例如计时器等)进行任何计算。

然而,人们往往想要更严格的决定论。人们常常想知道 Box2D 是否可以在不同的二进制文件和不同的平台上产生相同的结果。答案是不。这个答案的原因与浮点数学在许多编译器和处理器中的实现方式有关。如果您好奇,我建议您阅读这篇文章:http://www.yosefk.com/blog/consistency-how-to-defeat-the- Purpose-of-ieee-floating-point.html http://www.yosefk.com/blog/consistency-how-to-defeat-the-purpose-of-ieee-floating-point.html

或者换句话说:固定大小的浮点类型 https://stackoverflow.com/questions/2524737/fixed-size-floating-point-types

维基百科为何被删除,我不知道。人类。我很高兴他把项目名称小写了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Box2D 是完全确定性的吗? 的相关文章

  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何在android中获取Camera2 API的当前曝光

    In android hardware Camera旧的 我使用下面的代码获取当前曝光并获取它Camera Camera Parameters param mCamera getParameters currentExposure para
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • Scrapy中不同start_url的不同解析函数

    Scrapy可以为每个start url设置不同的解析函数吗 这是一段伪代码 start urls http 111sssssssss com http 222sssssssssssss com http 333sssssssssss co
  • 如何计算 git 树哈希?

    对于 Nodejs 项目 我需要确定文件夹的哈希值来检查版本 实际上 我制作了一个脚本来测试我的代码 没有文件系统 直接使用 git api 进行测试 但它有一半的时间有效 A1 https api github com repos zes
  • MySQL 按特定 24 小时间隔进行分组

    我有一个 MySQL 表 每行都有时间戳值 我的目标是对金额列的值求和 并按自定义 24 小时间隔 每天 05 30 00 开始 进行分组 input timestamp amount 2015 01 19 08 30 12 4 2015
  • 如何在数学图中画三角形?

    如何在显示 X 轴和 Y 轴的数学图表中绘制三角形 要使用 ActionScript2 绘制形状 您可以使用moveTo and lineTo MovieClip 对象的方法 您可以指定线条颜色和粗细线条样式 或者使用以下方法制作实体形状开
  • 如何从 CMake 中隐藏 Visual Studio 中的目标

    我正在使用 CMake 生成 sln 我想使用 Google Test 并使用此类代码来添加新测试 add executable my test test my test cpp target link libraries my test
  • 在数组中查找本地分钟

    有没有一种简单的方法来确定值数组的局部最小值和最大值 例如 Element Value Note 1 1 2 3 3 5 4 6 5 7 max 5 5 6 4 min 7 6 8 9 9 10 max 10 8 11 7 12 5 min
  • 动态获取 Android 设备的供应商 ID

    我想要得到Vendor ID通过我的代码访问我的 Android 设备 我读过这个 http developer android com tools device html http developer android com tools
  • 为什么在 hashcode() 实现中选择 31 来进行乘法? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么Java的String中的hashCode 使用31作为乘数 https stackoverflow com questions 299304 why does javas hashcode i
  • 使用一对多 JOIN 进行更新(多列)

    我遇到了一个问题 我不确定这是否是预期的行为 我在网上搜索了答案 但我所能找到的只是关于最后更新的行以及查询后的值是多少 我知道在这种情况下不存在订单之类的东西 并且您无法提前确定其价值是多少 但就我而言 我正在更新不同的列 因此覆盖以前的
  • Java 服务器的语言支持在过去 3 分钟内崩溃了 5 次。服务器不会重新启动

    添加 gitlab 后 我的 flutter 项目无法运行 代码无法运行 Android 应用程序 所以 我重新启动我的 Linux 电脑并再次尝试 现在它显示了此错误消息 Java 服务器的语言支持在过去 3 年内崩溃了 5 次 分钟 服
  • 是否可以为特定目标指定`panic = "abort"`?

    如果我指定panic像这样 它适用于所有目标 profile release panic abort 我想指定panic abort 仅适用于target arm linux androideabi 您需要添加一个 cargo config
  • 使用外部链接的CSS将边框应用于html元素[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 为什么我在通过外部链接的 CSS 文件设置 HTML 元素边框时遇到困难 帮助 我的 HTML 中的代码 section clas
  • 以 XSS 安全方式替换 AJAX 响应中的选项

    从内部succcess我的 AJAX 响应的方法 我的目标是以 XSS 安全的方式执行以下操作 删除所有现有的options在选择框中 替换同一选择框中的选项 这是删除和替换选项的一种方法 但我对这种策略完全安全的 XSS 没有很高的信心
  • 如何自行停止服务?

    我在一项活动中启动一项服务 然后我希望该服务在一段时间后自行停止 我在服务中调用了 stopSelf 但它不起作用 如何让服务自行停止 通过说 不起作用 我猜你的意思是onDestroy 未调用服务的方法 我也有同样的问题 因为我bound
  • 如何以这种方式将数据粘贴到列和行中

    我有一些标签数据要根据用户定义的输入值以列和行格式打印 它们是基于 3 个主要输入的条件 1 要跳过的起始标签数量 2 每行标签数量 3 每页行数 我有一份数据表 其中 A 列中包含数据 B 列中包含要打印的份数 我在希望打印的页面中附加了
  • ruby 的难忘名字生成器 gem

    在我自己动手并开始拿出字典之前 有谁知道 ruby gem 可以生成适合应用程序密钥的难忘名称 我需要一些可发音的东西 以便我可以为用户提供唯一的电子邮件地址来提交内容 我喜欢 Heroku 为其应用程序命名的例子 floating sky
  • Qt keyPressEvent、“Hold”和 keyReleaseEvent 处理按钮/鼠标点击

    我正在编写一个 Qt 程序来模拟一个硬件 我想模拟按钮按下 按住和释放事件 在我的应用程序中 我想处理键盘和鼠标点击的输入 以使用户 即我 方便 我注意到一些奇怪的行为 但我不明白 该应用程序使用 QPushButtonautoRepeat
  • const char 指针分配的内存在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的字符串文字是在静态内存中创建的吗 https stackoverflow com questions 349025 is a string literal in c created in st
  • 使用 ASP.NET 的 IIS 中的自定义 401 页面

    我有一个面向互联网的 ASP NET 网站 我想通过 Windows 身份验证来保护该网站的安全 我将 web config 文件设置为
  • Box2D 是完全确定性的吗?

    我正在使用 LibGDX 和 Box2D 编写 Android 游戏 我计划为其添加回合制多人游戏功能 现在 如果在两个客户端上我以相同的速率和相同的时间步长步进 Box2D 世界 并使用完全相同的初始参数在两个客户端上开始模拟 当模拟结束