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

本文关键字:绘图 区域 窗口 游戏 | 更新日期: 2023-09-27 18:27:07

我在尝试做什么时遇到的部分问题是试图向他人解释我想要什么。我试图实现的是一个游戏中的弹出菜单或窗口,它有自己的绘图区域。例如,假设我有一个弹出窗口,其中多个对象堆叠在一起,例如按钮,但窗口上的对象太多,无法容纳,因此需要滚动条将它们移动到视图中。我想做的是使这些对象仅在窗口内绘制:https://i.stack.imgur.com/k6zJi.jpg

涂有粉红色涂鸦的黑色区域是主游戏窗口,中心图像是弹出窗口,深蓝色方块是里面的物体。任何准则、建议和主要理论都将不胜感激。我试着只在它们在窗户里的时候画它们,这很有效,但看起来不太平滑,我希望物体在它们移出窗户时逐渐消失,而不仅仅是在它们接触到边界时消失,尤其是不要滑出窗户。

谢谢。

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

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

例如,如果你想在屏幕左上角渲染一个100x100像素的区域,你可以这样做:

            // 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);