WinForms / C#中的动画效果

时间:2011-01-23 23:11:04

标签: c# winforms

我正在从建筑物游戏中粘贴图像。 您看到的空单元格矩阵由PictureBox [] []组成。 每当我把一枚硬币放到其中一根柱子上时,我都不会想要它下来但是紫色的东西会隐藏下落的硬币,你看到的灰色会隐藏它。 我该如何产生这种效果? 请注意,在每个PictureBox控件中,我已经设置了BG Image,如您所见 My game screenshot

3 个答案:

答案 0 :(得分:4)

不要那样做。

创建自定义控件。在自定义控件中,重写Paint,然后首先绘制COIN精灵,然后在其上绘制蒙版。请确保在这里使用双缓冲绘画。

它会像魅力一样工作,相信我!

而且,既然你(我猜)在这里构建了五行游戏,你的自定义控件也可以绘制占用的插槽。

通过设计自定义控件,您将能够隐藏所有动画和图形内容远离主窗体。

答案 1 :(得分:1)

我不认为这样可能。 WinForms中的控件不能透明,这就是问题

我会从三个方向思考:

  1. 忘记控件和 画一切OnPaint事件 表格。这不是太复杂 (那会更复杂 检测像你这样的鼠标事件 现在做了,因为你不知道哪个 灰盒子被击中了,而不仅仅是 鼠标坐标)
  2. 尝试用硬币作为表格 (表格可以是透明的)
  3. 可能使用具有相同逻辑的WPF 你做了,因为控制可以 透明的

答案 2 :(得分:1)

Windows窗体中的控件可以是透明的。您需要将Form的TransparencyKey设置为您从未计划使用的某种颜色(许多人似乎喜欢/讨厌Magenta),然后将每个PictureBox的BackgroundColor设置为相同的颜色。结果应该是透明的PictureBox,并在其上绘制图像。我很确定这不适用于BackgroundImage属性,请注意 - 只是Image属性。

此方法的一个可能不需要的副作用是,您将能够通过PictureBox中的透明位置查看表单背后的任何内容(桌面,其他应用程序窗口等)。