相机跟随玩家,但是快速跟随玩家#39;屏蔽边框

时间:2013-04-04 22:32:32

标签: c# xna

我正在尝试为Jumping Platformer示例创建一个相机类。 Link Here

我只是不明白如何让相机跟随玩家的'球'。我知道瓷砖总是在屏幕上,但我想扩展地图X,Y并使用相机跟踪播放器在您浏览世界时。

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

1 个答案:

答案 0 :(得分: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

}