使用picturebox或类似控件制作2d tile编辑器

use*_*322 2 c# bitmap picturebox

我正在制作一个带方形瓷砖的2D游戏,是时候制作一个好的地图编辑器了.

早些时候我尝试过使用DataGridView,但事实证明它是超级的.

我想出应该有另一种方法来绘制图块(实际图像或彩色背景)及其参数(在文本中).图片框!

是否有一种简单的方法来访问像素数组,在所需坐标处插入平铺图像,获取指针坐标和所有内容,或者我应该尝试使用完全不同的方法?

Ter*_*ver 5

使用任何控件网格将是超级的.绘制瓷砖网格的"正确"方法是绘制瓷砖网格.

您可以创建自己的控件,将图像或索引/键数组放入图像容器中并绘制它们.

从Control派生您的自定义控件,而不是UserControl(UserControl是一个控件容器,您不需要它,或者如果您想要滚动条,可以从ScrollableControl交替).重写OnPaint方法以执行绘图.使用传递给OnPaint的Graphics对象,它具有绘制文本,基元和位图的方法.

您可以通过重写MouseDown/Up来处理用户输入,或让消费者处理它但提供HitTest方法,以便将给定的X,Y转换为网格索引.

我在这里有一些代码C#在一个面板中绘制圆圈,用于绘制省略号以响应用户输入.从该代码中,您可以看到在控件上绘制某个状态的示例(在这种情况下,控件是表单,但您可以推断到自定义控件).注意构造函数中的SetStyle调用以删除闪烁.另请注意,当您更改状态时,您不会尝试重绘,只需通知Invalidate,它会告诉操作系统您需要重绘.

更新

这是一个非常粗略的例子,可以帮助您入门:http: //pastebin.com/DseuN56y