使用首选后缓冲区高度和宽度交叉点不能正常工作

时间:2014-04-04 12:59:12

标签: windows-phone-8 xna windows-store-apps monogame

我想开发一款可以支持各种显示尺寸的游戏, 所以我使用以下代码进行多尺度处理。

   graphics.PreferredBackBufferHeight = 768;
   graphics.PreferredBackBufferWidth = 1024;
   shootrect = new Rectangle( 900,650  , 100, 100);
   touchrect = new Rectangle(mouse.X, mouse.Y, 0, 0);

         if (mouse.LeftButton == ButtonState.Pressed && !jump && shootrect.Intersects(touchrect))
            {
                jump = true; 
            }

使用此代码我试图将鼠标坐标与shootrect(这是让玩家跳跃的拍摄按钮)相交,如果我触摸那个矩形交叉点正在工作但是在相同宽度和高度的其他地方触摸正在工作

当我删除graphics.PreferredBackBufferHeight = 768; graphics.PreferredBackBufferWidth = 1024;代码交集中的那些行工作正常但我的缩放不适合其他大小的屏幕

2 个答案:

答案 0 :(得分:1)

如果使用创建它们的魔术数字,您需要手动缩放逻辑(例如矩形)。我建议创建相对于屏幕宽度和高度的那些。

答案 1 :(得分:0)

实际上graphics.PreferredBackBufferHeight = 768; graphics.PreferredBackBufferWidth = 1024;因为如果将我的屏幕分辨率设置为1024 x768,这个矩形交叉点正常工作,那么它运行良好,但我的分辨率是1980x1020,所以它无法正常工作