- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 FarseerPhysics 引擎/XNA 中,ConvertUnits.ToDisplayUnits();
是什么? ?
最佳答案
Farseer(或者更确切地说,它源自 Box2D)经过调整,可以最好地处理重量范围为 0.1 到 10 个单位,尺寸(宽度或高度)为 0.1 到 10 个单位的对象。如果您使用超出此范围的对象,您的模拟可能不会像其他情况下那样稳定。
大多数情况下,这适用于您可能在游戏中找到的“常规”大小的对象(汽车、书籍等),以米和千克为单位。但是,这不是强制性的,实际上您可以选择任何比例。 (例如:涉及弹珠或飞机的游戏可能使用米/公斤以外的比例)。
大多数游戏都有不同的空间。例如:“模型”空间、“投影”空间、“ View ”空间、“世界”空间、“屏幕”空间、“客户端”空间。有些以像素为单位,有些以普通单位衡量。通常游戏使用矩阵将顶点从一个空间转换到另一个空间。最明显的是以单位衡量的世界,并将其显示在以像素为单位的屏幕上。
XNA的SpriteBatch
默认情况下,通过让世界空间与客户空间相同,可以大大简化这一点。一个世界单位 = 一个像素。
通常你应该将你的世界空间定义为 相同 到你的物理世界所在的空间。但这在使用 SpriteBatch
时会出现问题。的默认空间 - 因为你不能有一个大于 10 像素的物理对象,而不超出 Farseer 调整的范围。
Farseer 的[1] 解决方案是拥有两个不同的世界空间——游戏空间和物理空间。并使用 ConvertUnits
需要在这两个系统之间转换的任何地方的类。
我个人觉得这个解决方案非常糟糕,因为它非常容易出错(因为您必须在整个代码中的多个位置进行正确的转换)。
对于任何适度严肃的游戏开发工作,我建议使用统一的世界空间,根据 Farseer 的要求进行设计。然后使用全局变换到 SpriteBatch.Begin
, 或完全不同于 SpriteBatch
的东西,将那个世界渲染到屏幕上。
但是,对于简单的演示,ConvertUnits
做这项工作。它让你保持美好的SpriteBatch
未缩放的 Sprite 纹理中的一个像素 = 屏幕上的一个像素的属性。
[1]:我上次检查时,ConvertUnits
是 Farseer 样本的一部分,而不是物理库本身的一部分。
关于c# - Farseer 转换单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506458/
我刚刚开始使用 Farseer Physics,并且创建了一个快速/粗略的基础对象,我可以使用它来轻松创建对象。 所以我设置了一个快速模拟,它看起来像这样: 在 DebugView 中,它看起来像这样
在 FarseerPhysics 引擎/XNA 中,ConvertUnits.ToDisplayUnits(); 是什么? ? 最佳答案 Farseer(或者更确切地说,它源自 Box2D)经过调整,
我有一个动态圆形对象,它被限制在四个静态矩形对象内。考虑一个盒子内的球,其中静态矩形对象模拟盒子的壁。对于圆形对象,IgnoreGravity 设置为 true。我希望圆形物体撞击墙壁并从墙壁反弹回来
我已成功使用 Farseer 使用 XNA 开发了我的一款游戏。该游戏在 Windows 和 WP7 中运行起来就像一个魅力。我目前正在使用 Monotouch 和 Monogame 将我的游戏移植到
我正在使用 FarSeer 和 XNA。 是否有一种简单的方法来调整或缩放 FarSeer 主体的大小? 谢谢。 最佳答案 我正在寻找解决方案,并在官方论坛上偶然发现了您的帖子。以下是我通过查看官方论
我已经创建了一个平台游戏,使用 farseer physics 与玩家和一些物体等,但在物体质量方面遇到了一些问题。 播放器由一个轮子和一个与关节相连的躯干组成,当不在任何物体上设置质量时,一切都几乎
最近几天我试图从 farseer 库开始,但是我无法让任何东西正常工作。文档非常少,互联网上与 3.3.1 版本相关的资源不多(有吗?)。这是我第一次尝试使用物理引擎,所以这对我来说是一个更大的问题。
我在我的 XNA 项目中设置了 Farseer,并且有一个玩家 body 会因为重力而不断下落。我想让玩家做的是使用从图像创建形状功能“降落”在我在窗口中的随机边缘图像上。如何让玩家 body 对象与
有没有适合初学c#程序员使用的教程或帮助文件。 最佳答案 Farseer Physics 引擎的主要文档在主页上。 http://www.codeplex.com/FarseerPhysics/Wik
其中哪一个更适合自上而下的射手? 我听说 Box2D 的执行速度更快,但我也注意到它缺乏对 XNA 更广泛的社区支持(它似乎用于闪存 - 原因我不知道)。 然而,Farseer 是为 XNA 构建的,
所以我一直在使用 Farseer 作为一款物理平台游戏,我开始遇到如下所示的一些问题: 当我想让我的角色跳跃时,我不仅想对角色 body 施加冲力,更现实地说,角色 body 应该向下推它下面的物体
我在 Farseer 物理引擎(使用 XNA)中旋转夹具时遇到了一些麻烦。基本上,我有一个固定装置,设置如下: private void setUpPhysics(World gWorld, Vec
我不知道为什么,但我似乎无法找出为什么这不起作用...我正在尝试做一些非常简单的事情,比如刚从屏幕上掉下来的东西。 看起来最新的下载和网站上的第一个示例代码,我还是错了。 我有这个: using Sy
我使用 Farseer 已经有一段时间了,从事物理教学平台项目。我脑子里有几个关于引擎的问题很长一段时间都没有得到解答,其中很多是关于引擎的碰撞处理。 许多人似乎无法理解引擎的工作原理,部分原因是 F
基本上,我有一个夹具和一个点。我想知道它们之间的距离(而不是它们的中心之间)。 我知道存在 Distance API,但它只适用于 2 个灯具:/ 最佳答案 更多的是你应该知道的数学知识。两个物体之间
所以我搜索了一下,找不到其他人遇到这个问题: 当我尝试在我的代码中的任何地方使用 Vector2 时,会出现以下错误: 模棱两可的引用:Microsoft.Xna.Framework.Vector2M
我一直在 XNA 中试用 farseer 3.3。对于我的生活,我无法让 DebugViewXNA 工作。 我有一个 World 对象,里面有几个物体。 body 固定在多边形模型上,所以我需要 de
我正在使用 Farseer 3.3 和 XNA。 我有一个问题,我无法很好地解决。 我遇到的情况是,有一个世界,里面有很多人,他们都在忙着做那件事。 然后我有一个物体的物体被设置为未启用,有没有一种很
我正在尝试创建一个不规则 2D Sprite Farseer 3.3.1 的主体。可以使用 BodyFactory.CreateCompoundPolygon 方法完成吗? 最佳答案 这是我的一个项目
我正在尝试使用 ExEn 和 MonoTouch 使用 XNA 和 Farseer Physics 3.3 为 iOS 构建游戏。理论上这应该可以正常工作,但我无法让 Farseer 在 iPhone
我是一名优秀的程序员,十分优秀!