飞机大战是Python基础期常用的案例,主要涉及了pygame模块,面向对象,逻辑循环知识点的运用
实现效果:
对象模块命名为“jingling.py”
import pygame #引入图形模板模块
import random #引入随机数模块
SCREEN_RECT = pygame.rect.Rect(0,0,500,800) #建立一个500*800像素的窗口作为游戏界面窗口
class GameSprite(pygame.sprite.Sprite): #定义一个图形属性类,继承pygame里面原有的Sprite模块
def __init__(self, image, speed=1): #定义一个图片信息属性,一个速度属性
super().__init__() # 2.调用父类的初始化方法
self.image = pygame.image.load(image) # 3.获取图片对象信息
self.rect = self.image.get_rect() # 4.获取图片的矩形对象常量(坐标,宽高等信息)
self.speed = speed
def update(self, *args): # 复写父类的update 方法
self.rect.y += self.speed # 更改精灵y轴的值
if self.rect.y>=(SCREEN_RECT.height+10): #设置超出边界10像素点的图形销毁,释放内存
self.kill() #销毁
class Background(GameSprite): #继承建一个游戏背景
def update(self, *args):
super().update() #继承父类update方法
if self.rect.y>=SCREEN_RECT.height: #更改方法里当前对象需要修改的信息(设置一个背景循环