当前位置: 首页 > 编程语言 > C#

FarseerMeter-PixelRatio分享

时间:2023-04-11 11:27:21 C#

FarseerMeter/PixelRatio我在c++中用box2d做了很多,并尝试了C#。看起来Farseer通常用于替换Box2D(我知道Box2DXNA,但它看起来有点过时。)所以,Farseer是我一直在使用的。当我使用C++和Box2D时,每个人总是建议不要使用1px/m的比例(出于什么原因,我不知道),并且通常建议在30px/m左右。在我研究Farseer时,我看到了许多相互矛盾的说法。有人说用1pixel/meter,有人说用scale,有人说用ConvertUnits.ToSimUnits和ConvertUnits.ToDisplayUnits等。那我怎么用呢?现在,我正在使用ConvertUnits,但所有内容都呈现在奇怪的地方。是否有事实上的标准或我应该追求的任何东西?提前致谢。Farseer3.x基于Box2D。Box2D常见问题解答说:Box2D调整为米-千克-秒(MKS)。您的移动物体应该在0.1到10米之间。不要使用像素作为单位!你会得到一个紧张的模拟。换句话说,假设一个“正常”的物理世界,你应该有1个物理单位=1m。但是任何导致大多数移动物体处于0.1到10单位范围内的比例都应该没问题。因此,假设您正在制作汽车模型。一个非常非常简单的模型恰好是一个矩形。你可以创建它:floatwidth=4.1f;//以米为单位的平均汽车长度floatheight=1.4f;//以米为单位的平均汽车高度//注意:此方法采用半尺寸:varcarVertices=PolygonTools.创建矩形(宽度/2f,高度/2f);//然后将carVertices传递给PolygonShape,等等...另一个问题是如何以正确的大小渲染你的世界。通常的做法是在渲染时使用相机或视图矩阵(在标准世界/视图/投影系统中)。您可以在两个地方执行此操作:BasicEffect.View(MSDN)或SpriteBatch.Begin的转换矩阵参数(MSDN,另请参阅)。IMO,FarseerConvertUnits类是处理转换的一种非常丑陋的方式。我使用intMetersPixel=64;对于我所有的基础计算。所以我很少有人认为他们的纹理是16px宽。所以当用Farseer创建他们的身体时,宽度是0.25。16/64=0.25最重要的是,手感、尺寸/比例和重量适合我目前的比赛,我不相信有任何黄金法则或为什么你应该为了获得代码10=1等而跳过篮球.到目前为止,它对我来说非常有效。我从来没有想过尝试将10px转换为1m,但对于我当前的游戏构建,我认为它没有用。以上就是C#学习教程:FarseerMeter/PixelRatio分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: