我现在在做一个动画小程序,需要画一个不断移动的小人,其中需要再不同的位置画上这个小人,并擦除原来画的,以实现动画的效果,请问一下如何擦除原来画的图像呢?
或者各位大哥大姐有更好的办法实现这个动画程序呢?
我是初学者,希望各位讲得浅显点,谢谢
或者各位大哥大姐有更好的办法实现这个动画程序呢?
我是初学者,希望各位讲得浅显点,谢谢
解决方案 »
- 对话框的一个问题
- Bresenham算法画直线的问题
- 没有北京 vc程序员 交朋友了
- 急求如何获得未安装驱动的硬件 的硬件ID代码
- TCP局域网传送数据不丢失,广域网传送数据丢失问题
- CDialog 加了 ModifyStyle(0, WS_CLIPCHILDREN);后,Group Box 底色为白色,并且拖大Dialog,Group Box 移动时,Group底部不能刷新。
- 为什么我的VC总是编译不了呢??
- 单元测试真的是程序员提升竞争力的捷径吗?
- 用ClassWizard的"Add member function"无法对一个类添加函数,
- 急死我了!!!RS485通讯的奇怪问题,请高手帮忙!
- 如何给对话框窗体加CToolBar?
- 可以修改Static Text控件显示的文字吗?
用个rect框起来处理一小部分就可以 这样好的多,但是directx应该更好 。
自己需要判断两个区域,rect_old和rect_new,当两个区域重叠时,利用RGN函数求得rect_old为一个六边形(去除重叠部分),用背景刷新的方法重现该区域的背景(当然,时春色背景的话,就直接填充啦),对于rect_new区域,直接画就行了,该方法流畅而又不会闪烁。试试吧!
1.你在内存位图作图
2.作图前重绘 上次的内存位图
GetClientRect( &rect) ;
CBrush brush ;
brush.CreateSolidBrush(RGB(255,255,255)) ;
//m_pdcMemory->PatBlt(0,0,rect.Width() ,rect.Height() ,PATCOPY ) ;
m_pdcMemory->FillRect( &rect , &brush) ;
3. 在内存位图上 继续你的绘画补充一句 :
ItomCat(喜欢变成) 讲的思路是对的