一、pygame簡介
(1)安裝pygame
pip install pygame
安裝成功之後,通過pydoc來查看pygame相關文檔,輸入如下命令:
python -m pydoc -p 8899
(2)pygame常用的遊戲api
1.使用pygame.image 讀取和保存圖片
img = pygame.image.load(filename) 讀取圖片
pygame.image.save (img, filename) 保存圖片
此外python.image還提供了toString(),fromstring(),frombuffer()函數來完成圖片序列化操作,也就是將圖片保存到字符串中,或者從字符串中讀取圖片
2.
二、開發遊戲界面組件
(1)遊戲界面分析
(2) 實現 怪物類
import pygame
import sys
from random import randint
from pygame.sprite import Sprite
from pygame.sprite import Group
from bullet import *
# 控制怪物動畫的速度
COMMON_SPEED_THRESHOLD = 10
MAN_SPEED_THRESHOLD = 8
# 定義代表怪物類型的常量
TYPE_BOMB = 1
TYPE_FLY = 2
TYPE_MAN = 3
class Monster(Sprite):
def __init__(self, view_manager, tp=TYPE_BOMB):
super().__init__()
# 定義怪物的類型
self.type = tp
# 定義怪物的xy座標的屬性
self.x = 0
self.y = 0
# 定義怪物是否已經死亡的旗標
self.is_die = False
# 繪製怪物圖片左上角的x座標
self.start_x = 0
# 繪製怪物圖片左上角的y座標
self.start_y = 0
# 繪製怪物圖片右下角的x座標
self.end_x = 0
# 繪製怪物圖片右下角的y座標
self.end_y = 0
# 該變量用於控制動畫刷新的速度
self.draw_count = 0
# 定義當前正在繪製怪物動畫的第幾幀的變量
self.draw_index = 0
# 當怪物的死亡動畫幀播放完成後,該變量的值變爲0
self.die_max_draw_count = sys.maxsize
# 定義怪物發射的子彈
self.bullet_list = Group()
# 如果怪物是炸彈或敵人,y座標和玩家控制的角色y座標相同
if self.type == TYPE_BOMB or self.type == TYPE_MAN:
self.y = view_manager.Y_DEFAULT
# 如果怪物時飛機,則根據屏幕高度隨機生成怪物的y座標
elif self.type == TYPE_FLY:
self.y = view_manager.screen_height * 50 / 100 - randint(0, 99)
# 隨機計算怪物的x座標
self.x = view_manager.screen_width + randint(0, view_manager.screen_width >> 1) - (
view_manager.screen_width >> 2)
(3)實現怪物管理
(4)實現子彈類
(5)加載 管理遊戲圖片
(6) 讓遊戲運行起來