0

我正在尝试为 Jumping Platformer Example 创建一个相机类。链接在这里

我只是不明白如何让相机跟随玩家的“球”。我知道瓷砖始终在屏幕上,但我想扩展地图 X、Y 并在您导航世界时使用相机跟随玩家。

如果有人可以查看教程,并向我解释如何添加相机类,我将非常感谢。(XNA 新手)

4

1 回答 1

1

简单的。它可能更容易完成,但这是一般的想法:

这是“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

}
于 2013-04-05T12:01:46.710 回答