游戏窗口中的特定绘制区域

时间:2014-10-19 16:45:01

标签: c# xna scroll draw popupwindow

我正在尝试做的部分问题是试图向别人解释我想要什么。我想要完成的是一个游戏内弹出菜单或窗口,它有自己的绘图区域。例如,假设我有一个弹出窗口,其中多个对象堆叠在一起,例如按钮,但是窗口上有太多不适合,所以你需要一个滚动条将它们移动到视图中。我想要做的是使这些对象只在窗口内绘制: http://imgur.com/8IWNEqN

带有潦草粉色的黑色区域是主要的游戏窗口,中心图像是弹出窗口,深蓝色方块是内部的对象。任何代码,建议和主要理论将不胜感激。我只是在他们进入窗户内时试图画它们但是它看起来非常平滑,我希望物体在移出窗外时逐渐消失,而不是在它们消失时消失触摸边框,特别是不要滑出窗外。

感谢。

1 个答案:

答案 0 :(得分:0)

在XNA中进行任何渲染之前,您可以在GraphicsDevice上设置ViewPort。这使您可以限制渲染事物的位置。

例如,如果您想要在屏幕左上角的1​​00x100像素区域渲染某些内容,您可以执行以下操作:

            // Create the rectangle
            var clipRectangle = new Microsoft.Xna.Framework.Rectangle(0,0,100,100);

            // Set the rectangle when you call SpriteBatch.Begin:
            mSpriteBatch.Begin(SpriteSortMode.Immediate, renderStates.BlendState,
                samplerState,
                depthStencilState,
                rasterizerState,
                null, matrix, 
                clipRectangle);