python【系列教程】之合金弹头

一、pygame简介

(1)安装pygame

pip install pygame

安装成功之后,通过pydoc来查看pygame相关文档,输入如下命令:

python -m pydoc -p  8899

python【系列教程】之合金弹头_第1张图片

 python【系列教程】之合金弹头_第2张图片

(2)pygame常用的游戏api

1.使用pygame.image 读取和保存图片

img = pygame.image.load(filename)   读取图片

pygame.image.save (img,  filename)    保存图片 

此外python.image还提供了toString(),fromstring(),frombuffer()函数来完成图片序列化操作,也就是将图片保存到字符串中,或者从字符串中读取图片

2.python【系列教程】之合金弹头_第3张图片

python【系列教程】之合金弹头_第4张图片

 

 

 

二、开发游戏界面组件

(1)游戏界面分析

python【系列教程】之合金弹头_第5张图片

 (2) 实现 怪物类

python【系列教程】之合金弹头_第6张图片

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) 让游戏运行起来

 

你可能感兴趣的:(python【系列教程】之合金弹头)