【发布时间】:2015-07-07 11:37:12
【问题描述】:
所以我正在重制 pacman,并使用 XNA 和 .NET 来构建它。
我设置了一个 448x576 的屏幕尺寸和一个 28x36 的矩阵,其中矩阵中的每个位置响应 16 像素 x 16 像素
448 / 16 = 28 576 / 16 = 36
这是我根据矩阵中的位置计算屏幕位置的方法:
public Vector2 GetPositionAt(int col, int row)
{
int X = ((col) * 16) + 8;
int Y = ((row) * 16) + 8;
return new Vector2(X, Y);
}
相反的代码是:
float col = ((position.X - 8) / 16);
float row = ((position.Y - 8) / 16);
return new MatrixPosition((int)col, (int)row);
但这不起作用,因为仅当 pacman 位置位于矩阵中位置的中心时,位置才会更新。我想在它接近新点时成功。
让我用图片解释(抱歉还不能发布图片): http://imgur.com/a/CYekd
【问题讨论】: