我正在开发一个用XNA,C#制作的游戏,我想启用基于xml的动画。
XML将如下所示
<Animation>
<AnimatedObject>
<Filename>Spaceship_Jet_01</Filename>
<Flipped>false</Flipped>
<StartPosition_X>300</StartPosition_X>
<StartPosition_Y>500</StartPosition_Y>
<GOTOPosition_X>650</GOTOPosition_X>
<GOTOPosition_Y>500</GOTOPosition_Y>
<Time>10000</Time>
</AnimatedObject>
</Animation>
这会将一个物体移到一边,就像这样 http://imm.io/odc7(抱歉X坐标错误)
我注意到会有问题,当玩家显示分辨率与我的分辨率不同时,因为我输入了关于物体来自何处以及必须去的位置的像素精确信息。
我想到了一个网格,所以我可以告诉程序将对象从(30,27)移动到(22,27),例如..这是一个很好的解决方案吗?网格必须独立于分辨率,但是瓷砖的数量必须是恒定的,我必须将对象绘制到屏幕上。这意味着我必须在位置(22,27)找到瓷砖的正确像素位置,然后将对象“移动”到该瓷砖。
有没有更好的方法呢?如何使用XNA解决这个问题?
答案 0 :(得分:0)
如果您使用2D相机,则不会有任何问题...因为计算新视图以使其适应新分辨率并不困难....并且您不必更改任何加载方法也不会逻辑......
你可以,但我不喜欢
使用[0..1]范围内的位置很难衡量。
在加载xml时,使用新的分辨率因子修复位置......很难看......
Pos *= NewResolutionSize/DefaultResolutionSize;