use*_*322 2 c# bitmap picturebox
我正在制作一个带方形瓷砖的2D游戏,是时候制作一个好的地图编辑器了.
早些时候我尝试过使用DataGridView,但事实证明它是超级的.
我想出应该有另一种方法来绘制图块(实际图像或彩色背景)及其参数(在文本中).图片框!
是否有一种简单的方法来访问像素数组,在所需坐标处插入平铺图像,获取指针坐标和所有内容,或者我应该尝试使用完全不同的方法?
使用任何控件网格将是超级的.绘制瓷砖网格的"正确"方法是绘制瓷砖网格.
您可以创建自己的控件,将图像或索引/键数组放入图像容器中并绘制它们.
从Control派生您的自定义控件,而不是UserControl(UserControl是一个控件容器,您不需要它,或者如果您想要滚动条,可以从ScrollableControl交替).重写OnPaint方法以执行绘图.使用传递给OnPaint的Graphics对象,它具有绘制文本,基元和位图的方法.
您可以通过重写MouseDown/Up来处理用户输入,或让消费者处理它但提供HitTest方法,以便将给定的X,Y转换为网格索引.
我在这里有一些代码C#在一个面板中绘制圆圈,用于绘制省略号以响应用户输入.从该代码中,您可以看到在控件上绘制某个状态的示例(在这种情况下,控件是表单,但您可以推断到自定义控件).注意构造函数中的SetStyle调用以删除闪烁.另请注意,当您更改状态时,您不会尝试重绘,只需通知Invalidate,它会告诉操作系统您需要重绘.
更新
这是一个非常粗略的例子,可以帮助您入门:http: //pastebin.com/DseuN56y