简单的飞机大战
如下图所示,这就是我自己做的飞机大战,图片都是自己画的(系统自己的画图工具),声音是在网上下载的。参考了哔哩哔哩一个视频的逻辑,然后自己就想做,于是就做了一个简单的飞机大战,代码也是我自己想出来的,(废了我一上午的时间).
简单的说一下过程
这是我的结构
因为是随意做的,所以说所有的代码都放在了一个文件Plane.py
有 1 个纯音乐(网上下载的), 1 个我方飞机的图片, 1张我方飞机的子弹,1张敌方飞机的图片和1张敌方飞机的子弹
实现功能有
- 用户通过键盘控制我方飞机,按空格发射子弹
- 敌方飞机在指定的范围内自由移动,随机发射子弹
- 可以设置敌方飞机发射子弹的速度,
- 也可以设置我方的子弹速度和移动速度
主要思路
- 就是设计4个类,对着4个类进行一些逻辑操作
- 飞机与子弹的关系
如图:
import pygame
import random
import time
from pygame.locals import *
# 设置屏幕大小
WIDTH = 800
HEIGT = 1000
# 飞机的图片和对应的大小
PLANE_IMG = "myplane.png"
PLANE_IMG_WIDTH = 96
PLANE_IMG_HEIGHT = 104
# 初始化 我方飞机的位置
PLANE_X = int((WIDTH - PLANE_IMG_WIDTH) / 2)
PLANE_Y = HEIGT - PLANE_IMG_HEIGHT
# 设置我方飞机子弹的图片,他对应的高度和宽度
MY_PLANE_BULLET = "myBullet.png"
MY_PLANE_BULLET_WIDTH = 19
MY_PLANE_BULLET_HEIGHT = 29
# 敌方飞机的图片和敌方飞机的图片大小
# 这样方便后期修改
ENEMY_PLANE = "enemy.png"
ENEMY_PLANE_WIDTH = 100
ENEMY_PLANE_HEIGHT = 105
# 敌方飞机的子弹和敌方飞机的图片
ENEMY_PLANE_BULLET = "enemyBullet.png"
# 设置我方子弹速度
MY_PLANE_BULLET_SPEED = 5
# 设置敌方子弹速度
ENEMY_PLANE_BULLET_SPEED = 3
# 设置敌方的难度
ENEMY_PLANE_MOVE_SPEED = 5
# 设置我方的移动速度
MY_PLANE_MOVE_SPEED = 40
def showGameInterFace():
# initialize all imported pygame modules
# 实例所有的模块
pygame.init()
# set_mode(size=(0, 0), flags=0, depth=0, display=0) -> Surface
# Initialize a window or screen for display
# 实例化一个窗口或屏幕用于显示,返回一个界面对象
screen = pygame.display.set_mode(size=(WIDTH, HEIGT))
# set_caption(title, icontitle=None) -> None
# Set the current window caption
# 设置窗口的标题
pygame.display.set_caption("简单的飞机对战")
# image = MissingModule("image", urgent=1)
# 加载图片到屏幕上
background = pygame.image.load("bac.png")
# load(filename) -> None
# load(object) -> None
# Load a music file for playback
# 导入一个音乐文件
pygame.mixer_music.load("1.mp3")
# set_volume(value) -> None
# set the music volume
# 设置音乐音量
pygame.mixer_music.set_volume(0.2)
# play(loops=0, start=0.0) -> None
# Start the playback of the music stream
pygame.mixer_music.play(-1)
myPlane = Plane(screen)
ene