python【系列教程】之合金彈頭

一、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) 讓遊戲運行起來

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章