我正在尝试为 Jumping Platformer Example 创建一个相机类。链接在这里
我只是不明白如何让相机跟随玩家的“球”。我知道瓷砖始终在屏幕上,但我想扩展地图 X、Y 并在您导航世界时使用相机跟随玩家。
如果有人可以查看教程,并向我解释如何添加相机类,我将非常感谢。(XNA 新手)
简单的。它可能更容易完成,但这是一般的想法:
这是“X”坐标的简单方法。以后也可以为 Y 坐标复制,但是,它可以做得更简单。但这是为了展示整个过程。您可以只使用 Math.Max(Math.Min()) 并以较短的形式计算这些值,但这有效。
你可以在这里看到整个源代码:http: //pastebin.com/G969mz0f
将需要一个纹理文件“播放器”,并且您必须删除“Program.cs”,因为我将它们全部放在一个文件中。
public void Move(float x, float y, Camera2D Camera)
{
Position.X += x;
if ((Position.X < Camera.Min.X))
Position.X = Camera.Min.X;
if ((Position.X + Width) > Camera.Max.X)
Position.X = Camera.Max.X - Width;
float centerX = Position.X + (Width / 2);
if (centerX > (Camera.Min.X + (ScreenDimension.X / 2)))
{
if (centerX < (Camera.Max.X - (ScreenDimension.X / 2)))
{
Camera.Move(-x, 0);
}
else
{
Camera.SetPosition(-(Camera.Max.X - ScreenDimension.X), Camera.Position.Y);
}
}
else
{
Camera.SetPosition(Camera.Min.X, Camera.Position.Y);
}
// Removed Y because of code length
}