- 飞机大战_雷电基础版
飞机大战(雷电)思路分析-跟着源码走:
飞机大战(雷电)思路分析-跟着源码走
1、第一次写博客,简单明了,希望对大家有帮助。
2、基础版雷电,详细注释,交流学习
3、代码面前无密码,况且还有有学习过程的注释,现在一起来看
- 图片:(代码中使用的素材只占一小部分)
- -链接:https://pan.baidu.com/s/1QT2eKhX-HCT9xMXzvj9pLA
提取码:zz51 - 游戏中使用了以下:(将图片放入代码文件所在文件夹下的images文件夹中)
background.png
me1.png
enemy1.png
bullet1.png - 代码:
- 1、play_main.py
import pygame
from plane_sprites import *
HERO_FIRE_EVENT = pygame.USEREVENT + 1
class PlaneGame(object):
"""飞机大战主游戏"""
def __init__(self):
"""游戏初始化"""
# 1. 创建游戏的窗口
"""
1> Rect.size 属性会返回矩形区域的 (宽, 高) 元组
2> set_mode(resolution=(0, 0), flags=0, depth=0)
参数
- resolution 指定屏幕的 宽 和 高,默认创建的窗口大小和屏幕大小一致
- flags 参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递
- depth 参数表示颜色的位数,默认自动匹配
"""
self.screen = pygame.display.set_mode(SCREEN_RECT.size)
# 2. 创建游戏时钟
self.clock = pygame.time.Clock()
# 3. 调用私有方法,精灵和精灵组的创建
self.__create_sprites()
# 4. 创建定时器事件 - 每秒创建一架敌机
# pygame.time.set_timer(事件常量, 每隔多少毫秒触发事件)
pygame.time.set_timer(CREATE_ENEMY_EVENT, 1000)
# 每隔 0.5 秒发射一次子弹
pygame.time.set_timer(HERO_FIRE_EVENT, 500)
def __create_sprites(self):
"""创建精灵和精灵组"""
# 创建背景精灵和精灵组
bg1 = Background()
bg2 = Background(True)
self.back_group = pygame.sprite.Group(bg1, bg2)
# 敌机组
self.enemy_group = pygame.sprite.Group()
# 创建英雄精灵和英雄组
self.hero = Hero()
self.hero_group = pygame.sprite.Group(self.hero)
def start_game(self):
"""开始游戏"""