飞机大战
pygame的简单使用
我们在使用Pygame设计一款游戏或动画的时候,需要包括三个部分:
一、初始设置
首先需要导入模块,创建游戏屏幕,然后初始化一些重要的变量
二、游戏循环
游戏循环使用while循环,使游戏持续更新屏幕和处理事件,除非用户退出程序,否则就会一直执行
三、退出程序
当用户想要停止程序的时候,使用一种方式来结束程序
实现思路
在目录下创建两个模块分别命名为plane_main.py主模块以及plane_sprites.py游戏精灵模块,并在主模块中导入游戏精灵模块。在主模块中创建飞机大战主游戏类PlaneGame,在游戏精灵模块创建主精灵类以及敌机类、子弹类、主飞机类继承主精灵类。
plane_main.py
# -*- coding:utf-8 -*-
# Python修炼者:段誉
# 开发时间:2021/12/4 19:41
import pygame
from plane_sprites import *
SCREEN_RECT=pygame.Rect(0,0,480,700)
FRAME_PRE_SEC=60
class PlaneGame(object):
'''飞机大战主游戏'''
def __init__(self):
print('游戏初始化')
#1.创建游戏窗口
self.screen=pygame.display.set_mode(SCREEN_RECT.size)
#2.创建时钟对象
self.clock=pygame.time.Clock()
#3.调用私有方法精灵和精灵组的创建
self.__create_sprites()
#4.设置定时器事件 -创建敌机
pygame.time.set_timer(CREATE_ENEMY_EVENT,1000)#set_timer(定时器常量,间隔时间)
pygame.time.set_timer(BULLET_FIRE_EVENT,500)
pygame.mixer.init() # 声音初始化
pygame.display.set_caption("飞机大战") # 设置游戏窗口标题栏文字
def __create_sprites(self):
#创建两个背景精灵
bg_sprites1=Background(False)
bg_sprites2=Background(True)
#创建背景精灵组
self.back_group=pygame.sprite.Group(bg_sprites1,bg_sprites2)
#创建敌机的精灵组
self.enemy_group=pygame.sprite.Group()
#创建战斗机精灵
self.fighter=Fighter()
#创建战斗机精灵组
self.fighter_group=pygame.sprite.Group(self.fighter)
def startgame(self):
print('游戏开始')
while True:
#1.设置刷新帧率
self.clock.tick(FRAME_PRE_SEC)
#2.事件监听
self.__event_hander()
#3.碰撞检测