我正在尝试做的部分问题是试图向别人解释我想要什么。我想要完成的是一个游戏内弹出菜单或窗口,它有自己的绘图区域。例如,假设我有一个弹出窗口,其中多个对象堆叠在一起,例如按钮,但是窗口上有太多不适合,所以你需要一个滚动条将它们移动到视图中。我想要做的是使这些对象只在窗口内绘制: http://imgur.com/8IWNEqN
带有潦草粉色的黑色区域是主要的游戏窗口,中心图像是弹出窗口,深蓝色方块是内部的对象。任何代码,建议和主要理论将不胜感激。我只是在他们进入窗户内时试图画它们但是它看起来非常平滑,我希望物体在移出窗外时逐渐消失,而不是在它们消失时消失触摸边框,特别是不要滑出窗外。
感谢。
答案 0 :(得分:0)
在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);