在Delphi的Image控件上画移动的图片
Img1为Timage 我已经在Img1.canvas上画了一个图片A 我想在上面画一个移动的图片B(或者是插入) 我用的是Imglist.draw来画 但是如何在画下一个图片B的时候把上个图片B消除 恢复成图片A 如果一直重新画整个图片A再重新画图片B的话 会占用很大的CPU 我用的是Timer事件 间隔为300ms 谢谢了
补充:实际应用中
图A大小大概200*200
图B只有8*8
但是会有30个左右的图B需要绘制
Img1为Timage 我已经在Img1.canvas上画了一个图片A 我想在上面画一个移动的图片B(或者是插入) 我用的是Imglist.draw来画 但是如何在画下一个图片B的时候把上个图片B消除 恢复成图片A 如果一直重新画整个图片A再重新画图片B的话 会占用很大的CPU 我用的是Timer事件 间隔为300ms 谢谢了
补充:实际应用中
图A大小大概200*200
图B只有8*8
但是会有30个左右的图B需要绘制
答案:一般的处理是重画下b原来在的位置,恢复a的原图,然后在重新画b。
不过我建议你还是先清空下画布,然后再画a,再画b吧,这样编程简单点。不然计算稍有问题就会出错的。
还有就是处理的画布时,可以先在内存中处理(在内存里建立一个画布,这样每次话得都是空画布,然后画a,画b,),处理好后直接把这个画在现有画布上就好了,也就不会多次画显示画布了(不会多次刷新,也就减少了需要处理的东西),同样也解决你的问题。
其他:将图片A、B画在不同的Image上,通过显示/隐藏试试。 通常创建一个 TBitmap,在这个上面做文章,然后 img1 load 进来即可。
lz 可以创建2个 TBitmap,其中一个保留初始状态。
上一个:谁会安装delphi 7 控件啊!会的话,请帮我在线安装一下? QQ785799795
下一个:delphi 月份递增的循环查询