我们将用面向对象的思维写一个飞机大战的小游戏 。
分为几个类:
- 全局设置类:包括一些基本的参数以及音乐、图片文件的路劲。
- 子弹基础类
- 玩家子弹
- 敌人子弹
- 飞机基类
- 玩家飞机基类
- 敌人飞机类
目录
(一)class Settings():
import sys, time, random
import pygame
from pygame.locals import *
import threading
SCREENWIDTH = 512
SCREENHEIGHT = 768
Gray = (128, 128, 128)
# 全局的设置类
class Settings():
def __init__(self):
# 定义游戏窗口大小,为背景图片的一半
self.screen_size = (self.screen_width, self.screen_height) = (SCREENWIDTH, SCREENHEIGHT)
self.bg_color = Gray
self.bg_image = './images/bg2.jpg'
# 不能播放 mp3,所以转成 wav
self.bg_music = './music/01.wav'
self.gameover_image = './images/gameover.jpg'
self.title = '飞机大战'
# 英雄机参数
self.move_step = 5 # 键盘控制的速度
self.hero_style = './images/me.png'
# 敌机参数
self.enemy_speed = 4 # 敌机飞行速度
self.enemy_style_list = ['./images/e0.png', './images/e1.png', './images/e2.png']
# 子弹参数
self.bullet_style = './images/pd.png'
self.bullet_hero_v = 10 # 英雄机子弹速度
self.bullet_enemy_v = 8 # 敌机子弹速度
# 实例化设置对象
settings = Settings()
设置一个全局的类,其中包括一些基本的参数。
最后对于一个类,都需要经过初始化和实例化后才可以发挥作用,类中使用__init__自动初始化,然后创建了一个settings对象,进行类的实例化。