如何制作RTS相机,以便当鼠标位于窗口边缘时,它将向左/向右/向上/向下移动。我一直试图在屏幕的侧面创建一个隐形框,这样当鼠标在框中时它会移动相机,但它仍然不起作用。请帮忙!
答案 0 :(得分:0)
以@Davor Mlinaric所说的为基础,使用鼠标x和y坐标(可以从Mouse.GetState()获得),并测试这些坐标是否与屏幕的顶部,底部和侧面接触。 这将是一个良好的开端,设置这些框将在以下方面:
GraphicsDevice.Viewport.Width/Height -/+ offset
偏移量是距离顶部,底部或侧面的距离。 然后使用布尔值测试鼠标位置的位置。
boolean inTheZone = false;
//Bottom Box
if(Mouse.GetState().Y > GraphicsDevice.Viewport.Height - offset)
{
//Move camera in the y axis downwards (+).
inTheZone = true;
}
else
{
inTheZone = false;
}
然后对剩下的4个方面相同。 注意我也在这里使用Y,这取决于你如何设置相机,这可能会改为Z。
我希望这会有所帮助