Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分辨率无关的动画网格?_C#_Xna_Grid_Positioning_Pixel - Fatal编程技术网

C# 分辨率无关的动画网格?

C# 分辨率无关的动画网格?,c#,xna,grid,positioning,pixel,C#,Xna,Grid,Positioning,Pixel,我正在开发一个用XNA、C制作的游戏,我想启用基于xml的动画 XML将如下所示 对不起,X坐标错了 我注意到,当播放器的显示分辨率与我的分辨率不同时,会出现问题,因为我输入了有关对象来自何处以及必须去何处的像素精确信息 我考虑了一个网格,这样我可以告诉程序将对象从30,27移动到22,27,例如,这是一个好的解决方案吗?网格必须独立于分辨率,但瓷砖的数量必须恒定,我必须将对象绘制到屏幕上。这意味着我必须在位置22,27找到瓷砖的正确pixle位置,然后将对象移动到该瓷砖上 有更好的方法吗?我如

我正在开发一个用XNA、C制作的游戏,我想启用基于xml的动画

XML将如下所示

对不起,X坐标错了

我注意到,当播放器的显示分辨率与我的分辨率不同时,会出现问题,因为我输入了有关对象来自何处以及必须去何处的像素精确信息

我考虑了一个网格,这样我可以告诉程序将对象从30,27移动到22,27,例如,这是一个好的解决方案吗?网格必须独立于分辨率,但瓷砖的数量必须恒定,我必须将对象绘制到屏幕上。这意味着我必须在位置22,27找到瓷砖的正确pixle位置,然后将对象移动到该瓷砖上


有更好的方法吗?我如何用XNA解决这个问题?

如果你使用2D相机,你不会有任何问题。。。因为计算新视图以使其适应新的分辨率并不困难。。。。你不需要改变你的加载方式和逻辑

你可以,但我不喜欢

在[0..1]范围内的位置工作,很难测量

加载xml时使用新的分辨率因子修复位置。。。很难看

Pos *= NewResolutionSize/DefaultResolutionSize;

与其以像素为单位设置x和y,不如以百分比为单位设置它们,例如,x的0值表示最左侧,1表示最右侧?然后,您可以轻松计算目标位置,只需执行XValue*GraphicsDevice.PresentationParameters.BackBufferWidth;或者类似的东西。谢谢你这个Pos*=NewResolutionSize/DefaultResolutionSize;解决了我的问题