XNA游戏studio4.0使用c#

时间:2011-09-01 11:36:38

标签: xna-4.0

 Vector2 firstSquare = new Vector2(camera.location.X / Tile.tilewidth, camera.location.Y / Tile.tileheight);
 int firstX = (int)firstSquare.X;
 int firstY = (int)firstSquare.Y;

 Vector2 squareOffset = new Vector2(camera.location.X % Tile.tilewidth, camera.location.Y % Tile.tileheight);
 int offsetX = (int)squareOffset.X;
 int offsetY = (int)squareOffset.Y;

此代码位于xna resources.com网站的tile引擎教程中。

在此代码中,我如何知道相机位置和这些矢量对象值?

而且我对2d游戏的相机视图和世界观都不了解。

1 个答案:

答案 0 :(得分:0)

想象一下,你正在处理一个真正的相机,而你正瞄准一扇门, 如果你将相机向右移动......相机会向你显示门正向左移动......

门不动,你只是移动相机。

此操作由相机的视图转换处理。

Xna提供了一种通过Matrix.CreateLookAt

创建此视图转换的方法

虽然使用2D相机:

View = Matrix.CreateTranslation( new Vector3( -_position, 0 ) )
                      * Matrix.CreateRotationZ( _rotation )
                      * Matrix.CreateScale( new Vector3( _scale, _scale, 1 ) )
                      * Matrix.CreateTranslation( new Vector3( ViewportScreen.X + ViewportScreen.Width * 0.5f, ViewportScreen.Y + ViewportScreen.Height * 0.5f, 0 ) );

此视图处理相机旋转,缩放和居中位置。