為了復(fù)習(xí)一下準(zhǔn)備自己做一個(gè)小游戲。想到微信上的飛機(jī)大戰(zhàn)很火,就決定做一個(gè)PC版的。首先去下了個(gè)微信的APK,把里面的飛機(jī)大戰(zhàn)的資源文件提取出來了。大家可以點(diǎn)擊這里下載,也可以像我一樣自己去提取。然后寫游戲時(shí)有問題可以訪問Pygame在線文檔 ,遇到的問題都可以在其中找到答案。資源準(zhǔn)備好后我們就可以開始編寫游戲了。
第一步,顯示背景。
我們先來顯示出飛機(jī)大戰(zhàn)游戲的背景圖。
1 # -*- coding: utf-8 -*-
2
3 import pygame
4 from pygame.locals import *
5 from sys import exit
6
7 SCREEN_WIDTH = 480
8 SCREEN_HEIGHT = 800
9
10 # 初始化游戲
11 pygame.init()
12 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
13 pygame.display.set_caption('飛機(jī)大戰(zhàn)')
14
15 # 載入背景圖
16 background = pygame.image.load('resources/image/background.png')
17
18 while True:
19 # 繪制背景
20 screen.fill(0)
21 screen.blit(background, (0, 0))
22
23 # 更新屏幕
24 pygame.display.update()
25
26 # 處理游戲退出
27 for event in pygame.event.get():
28 if event.type == pygame.QUIT:
29 pygame.quit()
30 exit()
我們來分析這段代碼:
導(dǎo)入Pygame庫及需要的庫;
初始化游戲,并根據(jù)設(shè)置好的大小生成游戲窗口;
載入背景圖片;
進(jìn)入游戲主循環(huán)。在主循環(huán)中,我們進(jìn)行了以下工作:
清空屏幕
繪制背景
更新屏幕
處理游戲退出事件
運(yùn)行后效果如下:
第二步,顯示飛機(jī)。
我們打開resources/image/,發(fā)現(xiàn)所有的飛機(jī)都在 shoot.png 一張圖片中。我們?cè)诒尘吧巷@示的元素(包括飛機(jī)、子彈等)在Pygame中都是一個(gè)surface,這時(shí)可以利用pygame提供的subsurface方法,首先load一張大圖,然后調(diào)用subsurface方法選取其中的一小部分生成一個(gè)新的surface。而這個(gè)小圖在大圖中的位置在image文件夾中shoot.pack文件里。
我們需要做的是在上述代碼載入背景圖后載入飛機(jī)圖片,然后生成飛機(jī)的surbsurface并初始化飛機(jī)開始的位置:
1 # 載入飛機(jī)圖片
2 plane_img = pygame.image.load('resources/image/shoot.png')
[1] [2] [3] 下一頁
新聞熱點(diǎn)
疑難解答
圖片精選