1

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

可以说,我很好奇在表单上分层绘制可点击图像的最佳方法。

理想情况下,我会

1) 环境层(通道、门等)

2)对象层(项目)

3)角色层(敌人)

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

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

我知道这不是理想的开发方式……这更像是我自己的原型。稍后,如果我有任何地方,我可能会将其移至 Tao,但现在(即明年左右),我想保持非常简单。

4

1 回答 1

2

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

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

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

于 2009-08-18T14:16:15.570 回答