概述
作为新手自学Python的第十八天,技术低微,希望可以通过这种方式督促自己学习。
个人学习环境:python3.9,PyCharm 2021.3.2 (Community Edition)
利用python完成飞机大战是一个非常经典的练手项目,本次完成基础构件下载安装、整体设计、及窗体绘制。
一、项目资源和素材
项目资源和素材来源于网上找的黑马程序员飞机大战的素材包,下载后熟悉下图片命名已被后期调用。
在《飞机大战》游戏中,除了Python基本知识外,我们还需要一个Python用来编写游戏的模块——Pygame。
Pygame可以用来管理图形、动画以及声音。
(一)安装Pygame
1、首先要确定自己计算机中已经安装好python及pip。
2、在终端中使用如下命令安装Pygame。
pip install pygame
二、项目设计
为了便于我们理解,我们把整个项目分成5个部分:
-
窗口的绘制(windows的窗口),即整个游戏的架子及窗口的样式。将这部分包含在run_game函数中。
-
我方飞机的制作。生成我方小飞机,实现飞机的移动、射击等操作。将这部分单独设计一个Hero类完成相应功能。
-
子弹的制作。从整体而言,子弹是单独的一部分,因为它有其自己的行为。将这部分单独设计一个Bullet类完成子弹功能。
-
敌机的制作。和第二部分类似,不过功能不同。将这部分单独设计一个Enemy类完成功能。
-
碰撞的检测。此部分较抽象,属于第一部分的一部分,但需要第二、三点的支撑。将它加入第一部分。
三、开始项目
(一)绘制窗体
先创建一个函数run_game完成相应的窗体绘制。
思路为:创建一个Pygame窗口,设置背景图片,调用函数完成绘制。
# 导入pygame库
import pygame
# 导入pygame库中的一些常量
from pygame.locals import *
# 导入sys库中的exit函数
from sys import exit
def run_game():
# 定义窗口的分辨率
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 640
# 初始化游戏
pygame.init() # 初始化 pygame
screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT]) # 初始化窗口
pygame.display.set_caption('飞机大战') # 设置窗口标题
# 载入背景图
background = pygame.image.load('./image/background.png')
# 事件循环(main loop)
while True:
# 绘制背景
screen.blit(background,(0, 0))
# 更新屏幕
pygame.display.update()
# 处理游戏退出
# 从消息队列中循环取
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
run_game()
注意:
while循环是控制游戏的。在Pygame中,(0, 0)是屏幕的左上角,向下移动时y轴坐标逐渐增大,向右移动时x轴坐标逐渐增大。调用pygame.display.update()是将刚刚位置的背景图刷新显示在窗体中。
为了访问Pygame检测到的事件,使用方法pygame.event.get()。在Pygame中,键盘和鼠标的触发都会促使for循环的运行,当检测到pygame.QUIT时,调用exit()退出游戏。
此次我们完成窗体的绘制,下一次我们完成飞机的生成。
图片素材放入网盘:
链接:https://pan.baidu.com/s/1WjRd0PHR9zb55NT5Pafm5w?pwd=a3k6
提取码:a3k6
最后
以上就是成就冬天为你收集整理的Python自学第十八天——飞机大战项目实践(一)一、项目资源和素材二、项目设计三、开始项目的全部内容,希望文章能够帮你解决Python自学第十八天——飞机大战项目实践(一)一、项目资源和素材二、项目设计三、开始项目所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复