正文

GDI圖形編程(10)

Windows移動游戲開發(fā)實戰(zhàn) 作者:(美)Adam Dawes


 

3.3  位圖

掌握了如何繪制矩形、橢圓等基本圖形后,現(xiàn)在就來看看GDI所提供的最有用的繪圖功能:位圖。

GDI中的Bitmap對象允許我們創(chuàng)建一個屏幕外的圖像(可以使用第3.2節(jié)中用到的繪圖方法和填充方法,可以加載預先繪制的圖形,還可以使用這些方法的組合),然后將該圖像的副本繪制在屏幕上。通過位圖,我們可以將外部的圖形加載到自己的游戲當中,可以利用圖形基礎函數(shù)來構建復雜圖形。只需要調用一個函數(shù)就可以將它們繪制到屏幕上。這些功能是使用GDI時最接近sprites(指移動圖形對象)的。也可以通過每次更新屏幕時改變要繪制的圖像來創(chuàng)建有效的動畫圖形。

3.3.1  使用Graphics類的基本函數(shù)創(chuàng)建位圖

通過在本章中已經(jīng)使用過的繪圖函數(shù)來創(chuàng)建位圖是很簡單的。只要圖像準備好,在屏幕上繪制就是快速和高效的,大大地優(yōu)于重復調用那些繪圖函數(shù)。

用這種方法來創(chuàng)建位圖的話,首先要實例化一個Bitmap對象,在對象的構造函數(shù)中設置好我們所期望的圖像的寬度和高度(單位為像素)。這樣就創(chuàng)建好了一個空的位圖,該位圖在初始時被填充為黑色。

為了能夠在位圖上進行繪圖,我們需要獲得一個Graphics對象,這可以調用靜態(tài)函數(shù)Graphics.FromImage來實現(xiàn)。一旦它執(zhí)行完畢,我們就可以使用所有的繪圖方法來繪制任何想要的圖形(或文本)。要記得這是發(fā)生在位圖中,而不是在屏幕上,位圖是不可見的,直到我們以后對它進行了繪制才會可見(這將很快實現(xiàn))。

程序清單3-8中創(chuàng)建了一個Bitmap對象,將其背景設置為白色,然后在其內(nèi)部繪制了一個圓。

程序清單3-8 創(chuàng)建一個位圖,并在上面繪畫

// Declare the Bitmap object that we are going to create

Bitmap myBitmap;

private void InitializeBitmap()

{

// Create the bitmap and set its width and height

myBitmap = new Bitmap(50, 50);

// Create a Graphics object for our bitmap

using (Graphics gfx = Graphics.FromImage(myBitmap))

{

// Fill the entire bitmap in white

gfx.Clear(Color.White);

// Create a pen for drawing

using (Pen b = new Pen(Color.Black))

{

// Draw a circle within our bitmap

gfx.DrawEllipse(b, 0, 0, myBitmap.Width, myBitmap.Height);

}

}

}

從程序清單3-8中您可以看到,為了獲得Bitmap的尺寸,我們可以使用其Width屬性和Height屬性,不需要單獨存儲這些信息。


上一章目錄下一章

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號