我正在开发2D游戏。为了更容易,我创建了一个项目编辑器和精灵编辑器。 Sprite编辑器将所有PNG加载到所选目录中,将其打包成字节数组并保存到文件中。项目编辑器导入该文件并在两个列表上显示精灵和项目。现在一切正常,因为每个项目都有一个精灵,因此将字节数组变形为位图并将其放入PictureBox非常容易。但现在我要制作更大的物品,最多9个精灵(中心和8个左右)。
下面是每个项目只加载一个精灵的简单代码:
private void LItemss_SelectedIndexChanged(object sender, EventArgs e)
{
if(this.LItemss.SelectedIndices.Count <= 0)
return;
int intselectedindex = LItemss.SelectedIndices[0];
if(intselectedindex >= 0 && this.itemsSID.ContainsKey(intselectedindex))
{
GameItem item = this.itemsSID[intselectedindex];
this.currentImage = item.Image;
this.TName.Text = item.Name;
this.TServerID.Text = item.ServerID.ToString();
this.TClientID.Text = item.ClientID.ToString();
this.CBlocking.Checked = item.Blocking;
this.CGround.Checked = item.Ground;
this.CTop.Checked = item.Top;
if(item.Image != null && item.Image != "" && this.sprites.ContainsKey(item.Image))
{
MemoryStream memoryStream = new MemoryStream();
byte[] data = this.sprites[item.Image];
memoryStream.Write(data, 0, Convert.ToInt32(data.Length));
Bitmap bm = new Bitmap(memoryStream, false);
memoryStream.Dispose();
this.PSprite.Image = bm;
}
else
this.PSprite.Image = null;
}
}
让我们说现在byte []数据而不仅仅是字节数组将是一个9大小的数组,从0到8个字节数组,每个数据都有不同的sprite。我的问题是如何将所有这些PNG数组连接到一个PictureBox中?