Head First C# 中文版 第13章 控制項和圖形 page611

來源:互聯網
上載者:User

 

③為雙緩衝的動畫設定好蜂巢和闐園表單


移除表單構造方法中設定背景映像的代碼。移除所有表單上的控制項並把表單的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
欄位。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.