1
|
Martijn Courteaux · 技术社区 · 14 年前 |
![]() |
1
3
我从未使用过XNA,但通常是为了解决这种问题,你只需要从屏幕的实际分辨率中抽象出精灵的位置。
这意味着您可以用绝对坐标(如在范围内)存储对象位置
然后根据这个坐标空间计算所有内容,并在实际绘图之前转换它们。当然,对于这种方法,您需要有不同的大小,必须以独立于分辨率的方式保持相同的比率。 例如,如果您有1080p,则选择64x64精灵,1080/64表示16.875,因此对于720p分辨率,您将需要42.6像素(如您选择的:42x42)等其他分辨率。 然后,转换非常简单:
(我不知道XNA是否已经使用浮点作为坐标) 此外,我实际上不知道你在做什么样的游戏,但如果你的屏幕只显示一个整个世界的视窗/游戏/任何东西,你可以很容易地将滚动部分与这个转换结合起来,因为你可以很容易地偏移它来获得屏幕坐标:
哪里
|
![]() |
2
1
使用SpriteBatch pass a时
标度矩阵
(
别忘了考虑长宽比( this question 可能值得一读)。 您可以结合缩放和变换矩阵来处理滚动等。 你可能想看看我对这个话题的回答 here (包括回答世界/视图/项目空间如何工作的答案的链接)和 here 可能还有 here 和 here 也。 |
![]() |
Ruslan · 如何在单游戏中使用或制作“效果”? 7 年前 |
![]() |
MyNameIsGuzse · 找不到C#静态类 7 年前 |
![]() |
John Tran · 有人能告诉我为什么这样不行吗?C#XNA 8 年前 |
![]() |
PÅemysl Novák · 单博弈-等距图块,大地图上的低FPS 8 年前 |
![]() |
TS1997 · 带有winforms的单游戏 9 年前 |
|
Joe Smith · 旋转固定在精灵上的Vector2 9 年前 |
|
jacksparrow · C#XNA-遍历项目并绘制它们 10 年前 |
![]() |
user2056166 · 在xna上绘制圆段 10 年前 |