Day10项目

阅读: 评论:0

Day10项目

Day10项目

本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!

注意:最新修改版本已发布在 这里,点击前往查看!

项目需求

  1. 存在四个对象:

    • 我方飞机
    • 敌方飞机
    • 我方子弹
    • 敌方子弹
  2. 功能:

    • 背景音乐的添加

    • 我方飞机可以移动【根据按键来控制的】

    • 敌方飞机也可以移动【随机的自动移动】

    • 双方飞机都可以发送子弹

  3. 步骤:

    • 创建一个窗口【搭建界面】
    • 创建一个我方飞机,根据方向键左右的移动【键盘监测】
    • 给我方飞机添加发射子弹的功能【按下空格键去发送】
    • 创建一个敌人飞机
    • 敌人飞机可以自由的移动
    • 敌人飞机可以自动的发射子弹

环境安装和调试

安装pygame

利用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('可以正常使用!')

运行结果:

界面配置

搭建界面

  1. 游戏界面:

  2. 程序代码:

    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()  # 调用创建界面的函数
    

键盘监测

  1. 程序代码:

    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')
    
  2. 运行结果:

背景音乐

pygame.mixer.init()  # 初始化音乐播放器
pygame.mixer.music.load("./feiji/backgrou
pygame.mixer.music.set_volume(0.5)  # 设置背景音乐音量
pygame.mixer.music.play(-1)  # 无限循环

玩家样式

  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()  # 调用创建界面的函数
    
  2. 运行结果:

面向对象实现

  1. 代码:在这

  2. 运行结果:

发射子弹

  1. 代码:在这

  2. 运行结果:

显示敌机和子弹

  1. 代码:在这

  2. 运行结果:

代码优化

可优化项:继承(避免过度冗余)

代码:在这


不足之处,欢迎留言,会及时回复,及时更正!

创作不易,感谢支持!

本文发布于:2024-01-30 13:22:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659217320309.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:项目
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23