python 使用pygame制作的打飞机小游戏

python基础使用pygame模块实现打飞机小游戏,有最高分记录,每次游戏的分数都会和最高分进行比较然后记录下来。
python 使用pygame制作的打飞机小游戏_第1张图片
基础代码实现:

class Bullet:
    def __init__(self):
        # 初始化成员变量,x,y,image
        self.x = 0
        self.y = -1
        self.image = pygame.image.load("image/子弹.png").convert_alpha()
        self.active = False  # 根据active的状态处理子弹发射,默认不激活。

    def move(self):
        # 处理子弹的运动
        if self.active:
            self.y -= 1  # 激活状态下,子弹向上移动。

        if self.y < 0:
            self.active = False  # 当飞出屏幕,就设为不激活。

    def restart(self):
        # 重置子弹位置
        mouseX, mouseY = pygame.mouse.get_pos()
        self.x = mouseX - self.image.get_width() / 2
        self.y = mouseY - self.image.get_height() / 2
        self.active = True  # 激活子弹


class Enemy:
    def restart(self):
        # 重置敌机位置和速度
        self.x = random.randint(50, 400)
        self.y = random.randint(-200, -50)
        # self.speed = random.random() + 0.5
        self.speed = random.uniform(0.1, 0.4)

    def __init__(self):
        # 初始化
        self.restart()
        self.image = pygame.image.load("image/宿敌.png").convert_alpha()

    def move(self):
        if self.y < 800:
            # 向下移动
            self.y += self.speed
        else:
            # 重置
            self.restart()


class Plane:
    def restart(self):
        self.x = 200
        self.y = 600

    def __init__(self):
        self.restart()
        self.image = pygame.image.load("image/飞机.png").convert_alpha()

    def move(self):
        x, y = pygame.mouse.get_pos()
        x -= self.image.get_width() / 2
        y -= self.image.get_height() / 2
        self.x = x
        self.y = y


def checkHit(enemy, bullet):  # 如果子弹在敌机图片范围之内,则认为hit命中目标。
    if (bullet.x > enemy.x and bullet.x < enemy.x + enemy.image.get_width()) and (
            bullet.y > enemy.y and bullet.y < enemy.y + enemy.image.get_height()):
        enemy.restart()  # 重置敌机
        bullet.active = False
        return True
    return False

python 使用pygame制作的打飞机小游戏_第2张图片
python 使用pygame制作的打飞机小游戏_第3张图片
需要全部代码的可以私信

少年易老学难成,一寸光阴不可轻

你可能感兴趣的:(程序开发,pygame,python,小游戏,操作文件)