我需要一个快速的动画在C#/Windows窗体的万圣节显示。只是一些二维的形状在一个坚实的背景上移动。由于这只是一个快速的一次性项目,所以真的不想为此安装和学习一整套新的工具。(DirectX开发工具包、Silverlight、Flash等)我还必须将它安装在多台计算机上,这样,除了基本的.Net框架(2.0)之外,任何事情都会很麻烦。
对于工具,我已经有了VS2k8,25年的开发经验,一辆手推车,大屠杀斗篷,以及大约2天的时间来摧毁它。自从在我的Atari130XE(页面翻转和播放器/导弹图形!)上使用汇编程序后,我就没有做过动画了!
建议?以下是我想知道的一些事情:
谢谢。
验尸编辑.“几天后的编码”
这个项目已经完成了。下面的链接很有用,尽管其中有几个是404。(我希望容许多于一项答覆标记为“正确”)。我必须克服的最大问题是闪烁,当我试图直接绘制表单时,它是一个持续的错误。
this是表单):
this.SetStyle(ControlStyles.OptimizedDoubleBuffer,this.SetStyle(ControlStyles.UserPaint,true);因此,代码的工作流看起来类似于(pf是面板控件):
void PaintPlayField()
{
Bitmap bufl = new Bitmap(pf.Width, pf.Height);
using (Graphics g = Graphics.FromImage(bufl))
{
g.FillRectangle(Brushes.Black, new Rectangle(0, 0, pf.Width, pf.Height));
DrawItems(g);
DrawMoreItems(g);
pf.CreateGraphics().DrawImageUnscaled(bufl, 0, 0);
}
}我刚刚从计时器循环内部调用了PaintPlayField。一点也不闪烁。
发布于 2008-10-09 17:44:54
按您想要的帧速率启动一个定时器。在每个定时器触发时,根据您想要实现的动画运动,在屏幕上(您的模型)旋转形状的内部表示,然后调用Invalidate(true)。在OnPaint内部,只需在屏幕上绘制模型。
哦,是的,你可能想打开双缓冲(这就像自动翻页)。
发布于 2008-10-09 18:18:34
https://stackoverflow.com/questions/188349
复制相似问题