怎样站一张扑克牌画得快一些?
wyj 2000-01-04 04:50:00 我做了一个扑克牌的游戏,关于画牌的部分用了一个笨办法。先定义一个TCard对象,主要有BmpId和PaintBox属性,分别指明这张牌面的图案在图象表中的索引和显示这张牌需要用的PaintBox。这样我一共建立了54个TCard实例,在游戏中指挥这些PaingBox在屏幕上跑来跑去,由于牌面的图案不是正矩形,它的四个角是圆的,所以在这些PaintBox对象的OnDraw事件中这样写道:(每张牌的尺寸是71*96,每个BMP的尺寸是69*94,每个BMP的四个顶点是黑色点)
(1)先Draw(1,1,BmpList[BmpId]);//画牌面中心的图案
(2)再画四条黑色边框线,但四个角不顶满,每条线的端点距离顶点2个象素。
这样画出来的牌比较好看,而且四个圆角是透明的。
但是游戏完成后感觉画牌的速度比较慢,如果把各PaintBox的ControlStyle属性中加上[csOpaque],速度稍快一点,但由于不刷新背景,四个角不再是透明的了,很难看。怎么办 ?是不是有更好的方法?(本来想给100分,但分不够用了,只好省着点儿,各位大侠吃点亏吧)