0

我在 XNA 中开发了一个 2D match3 游戏。核心逻辑和动画就完成了。我使用 RenderTarget2D 绘制整个板。该板有 8 行和 8 列,具有 64x64 纹理(瓷砖),可以单击和移动。为了捕获鼠标交叉点,我对每个图块使用 SourceRectangles。当然,SourceRectangle 与纹理具有相同的大小 - 64x64。

我想使用 RenderTarget2D 缩小整个板,以支持不同的显示器分辨率和方面。首先,我在 RenderTarget2D 中绘制所有图块。然后我用浮点系数缩小 RenderTarget2D。最后我在屏幕上绘制了 RenderTarget2D。结果,整个板子被正确地缩小了(例如,所有纹理都从 64x64 缩小到 50x50),但是 SourceRectagles 没有被缩放,它们仍然是 64x64,并且没有为正确的图块捕获鼠标交叉点。

为什么缩放 RenderTarget2D 不能处理这个问题?我该如何解决这个问题?

4

1 回答 1

0

你应该以不同的方式处理这个问题。你的纹理源矩形就是这样——不要试图将它们用作按钮矩形,否则你会遇到这样的麻烦。

相反,请使用不同的Rectangle hitboxRectangle,它最初与源矩形的大小相同,但会随游戏窗口缩放,并检查交叉点。

于 2013-01-27T17:00:11.027 回答