python项目实战——飞机大战
python实践:实践是检验知识的核武器
1.项目实战
1)pygame的一些基本使用
2)实战
2.pygame快速入门
2.1 使用pygame创建图形窗口
2.1.1 游戏的初始化与退出
第一步必须是调用初始化方法init():
- 加载pygame的所有模块
最后一步必须是调用退出方法quit():
- 把所有加载到内存中的pygame模块卸载
2.1.2 游戏中的坐标系
矩形区域:(x,y)(width, height)
- 1)左上角位置;
- 2)区域大小;
->:表示返回类型
调用Rect对象的size属性时,会返回对象的(width, height)元组;
2.1.3 创建游戏主窗口
set_mode() -> Surface:表示该方法的返回值为Surface
游戏循环的上边部分,称为游戏的初始化;
进入游戏循环,代表着游戏的开始;
2.2 理解 图像 并实现 图像绘制
理解update()方法的作用
2.3 理解 游戏循环 与 游戏时钟
一帧对应一次update()方法的调用。
2.4 理解 精灵 和 精灵组
可以根据不同的游戏角色(例如:子弹需要从下往上运动、敌机从下往上运动),派生精灵子类——重写精灵类的update()方法,改变位置变化方法。
开始正式使用类与对象,模块名称需要正式一些:play_sprites.py
import pygame
class GameSprite(pygame.sprite.Sprite):
"""文档注释:飞机大战游戏精灵"""
def __init__(self, image_name, speed = 1):
# 父类初始化方法的调用
super().__init__()
self.image = pygame.image.load(image_name)
self.speed = speed
self.rect = self.image.get_rect()
def update(self):
# 在屏幕的垂直方向移送
self.rect.y += self.speed
import pygame
from play_sprites import *
#第一步:初始化:
pygame.init()
# 创建游戏展示的主窗口:
screen = pygame.display.set_mode((400,700))
# 1.图片加载:
bg = pygame.image.load("./images/background.png")
hero = pygame.image.load("./images/me1.png")
# 2.图片描绘到游戏主窗口上
screen.blit(bg,(0,0))
screen.blit(hero,(200,400))
# 3.更新显示
pygame.display.update()
# 设置游戏时钟对象
clock = pygame.time.Clock()
# 定义飞机的初始位置
hero_rect = pygame.Rect(150,500,102,126)
# 1.创建敌机精灵
enemy = GameSprite("./images/enemy1.png")
enemy1 = GameSprite("./images/enemy1.png", 2)
# 2.创建敌机精灵组
enemy_group = pygame.sprite.Group(enemy, enemy1)
# 第二步:游戏循环
while True:
# 设置屏幕刷新频率
clock.tick(60)
#event_list = pygame.event.get()