游戏窗口中的特定绘图区域
本文关键字:绘图 区域 窗口 游戏 | 更新日期: 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);