python---简单游戏制作(飞机大战)

1.开发软件

pycharm 编程软件
pygame 第三方库
sprite
sprite代表游戏中非背景的一个动图,比如人物、子弹、
Group
group代表多个sprite一组被同时管理,比如头、身、手、脚组合成一个大怪..

2.技术介绍

     pycharm:PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发

    pygame:Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows、Linux、Mac OS 等操作系统,具有良好的跨平台性。Pygame 由 Pete Shinners 于 2000 年开发而成,是一款免费、开源的的软件包,因此您可以放心地使用它来开发游戏,它是免费的,是制作小游戏的不二首选。

Pygame 在 SDL(Simple DirectMedia Layer,使用 C语言编写的多媒体开发库) 的基础上开发而成,它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块等。相比于开发 3D 游戏而言,Pygame 更擅长开发 2D 游戏,比如于飞机大战、贪吃蛇、扫雷等游戏。

话不多说,开整


3.游戏制作-------(部分代码)

 导入需要的第三方库,不管做什么先做一个一个基本规划,我管这个叫重构。

import pygame, os
import time
import random
from pygame.sprite import Sprite
from pygame.sprite import Group

  设置背景音乐(也可以自行调节)

def fire_music():
    pass
    # 设置开火音乐
    effect = pygame.mixer.Sound('sounds/fire.wav')
    pygame.mixer.Sound.play(effect)

    总体游戏构造(需要提前准备好场景设置的图片音乐字体)

class Boss(Sprite):
    def __init__(self,boss_img_name):
        super().__init__()
        # 加载BOSS图片
        self.image = pygame.image.load('图片/'+boss_img_name+'.png').convert_alpha()
        # 转换BOSS大小
        # self.image = pygame.transform.scale(self.image, (1, 12))
        # 生成BOSS矩形框架
        self.rect = self.image.get_rect()
        self.blood = 1000
        # boss左右移动的速度
        self.speed = 3.5

    def move(self):
        if self.rect.centerx>=512:
            self.speed =-self.speed
        if self.rect.centerx<=0:
            self.speed = -self.speed
        self.rect.centerx +=self.speed



class Enemy(Sprite):
    def __init__(self,screen):
        # 必须设置继承精灵 不然在使用精灵函数时会报错
        super().__init__()
        # 获取屏幕对象
        self.screen = screen
        # 随机 生成5个编号
        alien_num = random.randint(1,5)
        # 随机 加载五个飞机中的某个
        self.image = pygame.image.load('图片/alien_' + str(alien_num) + '.png')
        # picture = pygame.transform.scale(picture, (1280, 720))
        self.image = pygame.transform.scale(self.image,(62,62))
        # 获取飞机的 rect
        self.rect = self.image.get_rect()
        # 击落本机获得的分数
        self.score = 10
        # 加载子弹的图片
        self.bullet_img = pygame.image.load("图片/alien_bullet.png").convert_alpha()
        self.bullet_img = pygame.transform.scale(self.bullet_img, (12, 12))
        # 以下为可以调节子弹尺寸的代码
        # picture = pygame.transform.scale(picture, (1280, 720))
        #飞机的移动速度
        self.speed = random.randint(3,5)

        #生成子弹精灵组合
        self.bullets = Group()
        # 敌机射击频率
        self.shoot_frequency = 0

5.总体效果展示

 

猜你喜欢

转载自blog.csdn.net/qq_44856617/article/details/128227693