本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
存在四个对象:
功能:
背景音乐的添加
我方飞机可以移动【根据按键来控制的】
敌方飞机也可以移动【随机的自动移动】
双方飞机都可以发送子弹
步骤:
利用SDL(C语言编写)库编写的python游戏库,需要手动安装
安装库:
pip install pygame
安装完成:
注意:可能会因为网络原因下载中断导致安装失败,建议科学上网。
验证安装:
pip list
运行结果:
新建python项目:
注意:要勾选红框中的内容,代表使用新的虚拟环境。
导入pygame文件:
点击下方Terminal:
输入:pip list查看已安装的第三方库,发现pygame未安装
输入:pip install pygame
如果cmd中安装成功,pycharm中安装失败,可以按照以下步骤操作:
输入:pip show pygame
访问该路径,找到下图所示文件夹并复制:
粘贴到 游戏项目venvLibsite-packages
路径下:
验证安装成功:
运行代码:
import pygameprint('可以正常使用!')
运行结果:
游戏界面:
程序代码:
import pygame # 导入pygame包
from pygame.locals import *def main():'''搭建界面,显示背景图片:return:'''screen = pygame.display.set_mode((350, 500)) # 设置界面大小background = pygame.image.load("./feiji/background.png") # 导入背景图片pygame.display.set_caption('飞机大作战') # 界面名称while True:screen.blit(background, (0, 0)) # 在界面中心位置显示背景图片pygame.display.update() # 刷新界面if __name__ == '__main__':main() # 调用创建界面的函数
程序代码:
eventList = () # ()可以监听键盘的输入
for event in eventList: # 遍历读取到的信息print(event)pe == QUIT: # 先判断读取到的信息的类型print('退出!')exit()pe == KEYDOWN:if event.key == K_a or event.key == K_LEFT: # 如果是a或者左方向键print('left')elif event.key == K_d or event.key == K_RIGHT:print('right')elif event.key == K_SPACE:print('space')
运行结果:
pygame.mixer.init() # 初始化音乐播放器
pygame.mixer.music.load("./feiji/backgrou
pygame.mixer.music.set_volume(0.5) # 设置背景音乐音量
pygame.mixer.music.play(-1) # 无限循环
程序代码:
import pygame # 导入pygame包
from pygame.locals import * # 导入包中的一些函数def main():'''搭建界面,显示背景图片:return:'''screen = pygame.display.set_mode((350, 500), depth=32) # 设置界面大小background = pygame.image.load("./feiji/background.png") # 导入背景图片hero = pygame.image.load('./feiji/hero.png')pygame.display.set_caption('飞机大作战') # 界面名称pygame.mixer.init() # 初始化音乐播放器pygame.mixer.music.load("./feiji/background.mp3") # 导入背景音乐pygame.mixer.music.set_volume(0.5) # 设置背景音乐音量pygame.mixer.music.play(-1) # 无限循环x, y = 0, 0while True:screen.blit(background, (0, 0)) # 在界面中心位置显示背景图片screen.blit(hero, (x, y)) # 在界面中心位置显示背景图片eventList = () # ()可以监听键盘的输入for event in eventList: # 遍历读取到的信息print(event)pe == QUIT: # 先判断读取到的信息的类型print('退出!')exit()pe == KEYDOWN:if event.key == K_a or event.key == K_LEFT: # 如果是a或者左方向键print('left')if x > 0:x -= 5elif event.key == K_d or event.key == K_RIGHT:if x < 310:x += 5print('right')elif event.key == K_SPACE:print('space')pygame.display.update() # 刷新界面if __name__ == '__main__':main() # 调用创建界面的函数
运行结果:
代码:在这
运行结果:
代码:在这
运行结果:
代码:在这
运行结果:
可优化项:继承(避免过度冗余)
代码:在这
不足之处,欢迎留言,会及时回复,及时更正!
创作不易,感谢支持!
本文发布于:2024-01-30 13:22:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659217320309.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |