③為雙緩衝的動畫設定好蜂巢和闐園表單
移除表單構造方法中設定背景映像的代碼。移除所有表單上的控制項並把表單的DoubleBuffered
屬性設定為
true
。給兩個表單添加
Paint
事件處理方法。下面是蜂巢表單的
Paint
事件的處理方法
--
田園表單的差不多,只是它調用
PaintField
()方法而已:
④兩個表單都需要一個公有的renderer
屬性:
移除所有的對於渲染器的Reset
()方法的調用,把所有的
new Renderer
()語句替換為對下面的
CreateRenderer
()方法的調用:
⑤大修渲染器
如下做:
*
移除兩個字典。移除Render
()方法,還有
DrawBees
(),
DrawFlowers
()方法。
*
添加一些叫做HiveInside
,
HiveOutside
和
Flower
的
Bitmap
類型的欄位,它們用於儲存映像。然後建立兩個
Bitmap[]
數組,分別叫做
BeeAnimationLarge
和
BeeAnimationSmall
。它們兩個分別儲存四張蜜蜂的圖片
--
大的是
40x40
,小的是
20x20
。建立一個叫做
InitializeImages
()的方法來縮放資源並把它們儲存在這些欄位中,並從
Renderer
的構造方法中調用它。
*
添加PaintHive
()方法,它接受一個
Graphics
作為參數,它用來繪製蜂巢。首先繪製藍色的矩形,然後使用
DrawImageUnscaled
()來繪製蜂巢內部的圖片,然後使用
DrawImageUnscaled
()來繪製每一隻處於蜂巢內部的蜜蜂。
*
最後,添加PaintField
()方法。它在表單上半部分繪製天藍色的矩形,下半部分繪製綠色的矩形。表單的兩個屬性
ClientSize
和
ClientRectangle
可以告訴你繪製地區的大小。你可以用這兩個屬性找到表單的一半的位置。用
FillEllipse
()來繪製一個黃色的太陽,用
DrawLine
()繪製用於懸掛蜂巢的樹枝。用
DrawImageUnscaled
()來繪製蜂巢的外部形象。然後繪製花朵。最後繪製蜜蜂,這樣蜜蜂就可以處於最前端。
*
繪製蜜蜂的時候,要記得AnimateBees
()方法設定了
Cell
欄位。