分部返回错误的数字 - C#/ XNA

时间:2014-05-18 11:41:18

标签: c# math xna

我有一张图像(1280x1024),我想在游戏菜单中作为背景,图像左侧,右侧和顶部的边距为64px。

因为游戏窗口可以调整大小,所以图像需要重新调整为特定大小,这很容易,图像的宽度只有windowWidth - 128,但是高度更难拉高,因为图像的底部应该从窗口的末端消失。

目前,我正在尝试使用图像的分辨率和绘制的宽度来计算比例,然后用它来计算图像的正确高度,如下所示:

image.Height / (int)(((float) image.Height) / (windowWidth - 128)));

当窗口大小为1024x768时,这似乎总是返回1024作为高度(和896作为宽度,这是正确的)。这会导致图像在菜单中变高,从而导致扭曲不正确。

有没有更好的方法来正确缩放图像,或者我错过了一些微不足道的东西?

1 个答案:

答案 0 :(得分:2)

您正在使用integer divisions

尝试:

b = f / ((e * 1.0) / a)

或者

 b = f / ((float) e) / a