我在XNA中开发了2D match3游戏。核心逻辑和动画完成。我使用RenderTarget2D绘制整个板。该板有8行8列,64x64纹理(瓷砖),可以点击和移动。为了捕获鼠标交集,我为每个tile使用SourceRectangles。当然,SourceRectangles的大小与纹理相同 - 64x64。
我想使用RenderTarget2D缩小整个电路板,以支持不同的显示器分辨率和方面。首先,我在RenderTarget2D中绘制所有切片。然后我用浮动系数缩小RenderTarget2D。最后,我在屏幕上绘制RenderTarget2D。因此,整个电路板可以正确缩小(例如,所有纹理都从64x64缩小到50x50),但SourceRectagles不会缩放,它们仍然是64x64,并且没有为正确的图块捕获鼠标交叉点。
为什么缩放RenderTarget2D不能处理这个?我怎么能解决这个问题?
答案 0 :(得分:1)
你应该以不同的方式解决这个问题。纹理的源矩形就是这样 - 不要试图将它们用作按钮矩形,否则你会遇到麻烦。
相反,请使用不同的Rectangle hitboxRectangle
,它最初与源矩形的大小相同,但会随着您的游戏窗口缩放,并检查相交的交叉点。