C#中的简单图形,默认使用System.Drawing

时间:2009-08-18 14:01:55

标签: c# system.drawing

我想在C#中使用默认的绘图库开发一个简单的点和点击游戏...没有openGL / SDL / Tao这个项目。

我只想说,我很好奇在窗体上绘制可点击图像的最佳方法。

理想情况下,我会

1)环境层(路径,门等)

2)对象层(项目)

3)角色层(敌人)

理想情况下,其他图层下方的图层仍然可以查看,因此我仍然可以看到对象下面的环境(因此我用来将对象绘制到表单的任何组件都需要透明)。

这个游戏将基于区块...所以我将生成某种组件的2D数组并将它们放在表单上。问题是,我应该使用哪个组件?朋友建议生成面板并将其放到窗体上并使用背景图像属性,但是有更好的方法吗?

我知道这不是理想的开发方式......这对我自己来说更像是一个原型。如果我到达任何地方,我可能会把它移到Tao,但是现在(即,明年左右),我想保持它非常简单。

1 个答案:

答案 0 :(得分:2)

Tiles只是用于组织UI的逻辑块。您不需要以面板的形式使用瓷砖来使用“瓷砖”的想法。切换切片只是意味着您的角色已到达切片A的右边缘,因此您将绘制切片B并将该字符放在该切片的左边缘。所以你的内存结构应该是一个逻辑tile对象的2D数组,其中包含有关绘制内容但不一定是Panels的信息,尽管这是一个选项,我不推荐它。

图层:你真的不需要担心图层。您所要做的就是以正确的顺序绘制:首先是环境,然后是对象,然后是字符。 .Net和可能所有的框架都会回到前面,这意味着首先绘制的东西可能被后来绘制的对象完全或部分遮挡。 “分层”自动发生。如果您只是在自己的范围内绘制对象,那么您不必担心透明度。例如。在20x20像素范围内绘制一个20x20像素的字符。

这是假设原始e.Graphics.Draw *和e.Graphics.Fill *当然在Paint事件处理程序中调用。与软件中的任何内容一样,有101种方式......