2 鴨子類Target的創建
2.1 ?__init__()函數
Target類的__init__()函數代碼如圖5所示。
圖5 __init__()函數代碼
其中,第18行將Target類聲明為pygame.sprite.Sprite類的子類;第19行代碼中,__init__()函數的img_path參數表示鴨子圖片的文件名,x和y表示鴨子起始位置的橫縱坐標;第20行代碼調用pygame.sprite.Sprite類的__init__()進行初始化操作;第21行代碼導入鴨子圖片;第22行代碼獲取鴨子圖片的位置和大小;第23行代碼根據指定的位置設置鴨子的起始位置。
2.2 update()函數
Target類的update()函數代碼如圖6所示。
圖6 update()函數代碼
Target類的update()函數的作用是讓鴨子游動起來。鴨子是從屏幕左邊向右邊水平移動的,所以只需要改變其橫坐標即可,縱坐標可以不變。第25行代碼通過rect.move_ip()方法改變鴨子的橫坐標,random.randint(0,10)表示鴨子的速度是一個0-10之間的隨機數;第26-27行代碼判斷鴨子是否已經游到屏幕的右側邊緣,如果已經游到邊緣,則將其左上角的橫坐標rect.left設置為0,表示將其位置恢復到屏幕左側邊緣。
3 實例化瞄準鏡類及創建相應的精靈組
實例化瞄準鏡類及創建相應的精靈組的代碼如圖7所示。
圖7 實例化瞄準鏡類及創建相應的精靈組的代碼
其中,第42行代碼實例化了瞄準鏡類Crosshair,其實例名為crosshair,“crosshair_blue_small.png”是瞄準鏡的文件名;第43行代碼通過pygame.sprite.Group()創建了精靈組crosshair_group;第44行代碼將實例crosshair加入到精靈組crosshair_group中。
4 實例化鴨子類及創建相應的精靈組
實例化鴨子類及創建相應的精靈組的代碼如圖8所示。
圖8 實例化鴨子類及創建相應的精靈組的代碼
其中,第46行代碼創建用于保存鴨子精靈的精靈組target_group;第47行使用for循環創建TARGET_NUM個鴨子;第48-49行代碼隨機設置鴨子的橫縱坐標;第50行代碼實例化鴨子類,“duck_yellow.png”是鴨子圖片的文件名;第51行代碼將創建的鴨子實例精靈加入到精靈組中。
5 導入背景
導入背景的代碼如圖9所示。
圖9 導入背景的代碼
其中,第39行代碼通過pygame.image.load()導入背景圖片;第40行代碼將背景圖片設置為屏幕大小,pygame.transform.scale()函數的作用是設置圖片大小,bg_img表示要設置的圖片,(SCREEN_WIDTH, SCREEN_HEIGHT)表示要設置的大小,即為屏幕的寬度和高度。