我正在尝试为Jumping Platformer示例创建一个相机类。 Link Here
我只是不明白如何让相机跟随玩家的'球'。我知道瓷砖总是在屏幕上,但我想扩展地图X,Y并使用相机跟踪播放器在您浏览世界时。
如果有人可以查看教程,并向我解释如何添加相机课程,我将非常感谢。 (XNA新手)
答案 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
}