所以我有一个代码通过资源Image foodWorld = Resources.orange
将图像注入我的项目中,我想从这张照片中制作一个矩阵,所以它看起来像这样:
我有这段代码,但我不知道如何绘制矩阵。此外,我不知道这是否是吸引它的正确方法:
this.Width = 400;
this.Height = 300;
Bitmap b = new Bitmap(this.Width, this.Height);
for(int i = 0; i < this.Height; i++)
{
for(int j = 0; j < this.Width; j ++)
{
//fill the matrix
}
}
答案 0 :(得分:1)
我对WinForms不太熟悉,但在WPF中,我是这样做的:
var columns = 15;
var rows = 10;
var imageWidth = 32;
var imageHeight = 32;
var grid = new Grid();
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
//Get the image in your project; I'm not sure how this is done in WinForms
var b = new Bitmap(imageWidth, imageHeight);
//Display it
var pictureBox = new PictureBox();
pictureBox.Image = b;
//Set the position
Grid.SetColumn(j, pictureBox);
Grid.SetRow(i, pictureBox);
//Insert into the "matrix"
grid.Children.Add(pictureBox);
}
}
对于移动Pacman,重复上述操作,但仅限一张图像。存储对当前位置的引用以及按下某些键时,
Grid
中移除。假设myGrid.Children[currentRow * totalColumns + currentColumn]
和currentRow
都是从零开始的,您可以使用currentColumn
来获取它。这意味着矩阵将具有固定大小,但在WPF中,有一个Viewbox
,这对于这些类型的场景很方便。另外,将pacman的z-index设置为大于水果,以便它始终位于顶部。