# rvqiyi-pygame1 **Repository Path**: cij/rvqiyi-pygame1 ## Basic Information - **Project Name**: rvqiyi-pygame1 - **Description**: pygame飞机大战,包含基础学习阶段的源码和飞机大战项目源码 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-09-27 - **Last Updated**: 2021-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > 安装依赖 ``` pip install -r requirements.txt pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame ``` # Pygame基础入门 > 游戏主模块 ## 1.game_main.py 游戏主入口 ## 2.game_sprites.py 游戏精灵类模块 ## 3.game_sound.py 游戏音频模块 ## 4.game_public.py 游戏公共模块 ## 5.resource_path.py 游戏资源路径模块 ## 6.file_op.py 排行榜数据文件操作模块 ``` 开发环境: python.3.8.4 开发工具: pycharm 2020.1专业版 开发技术: pygame==2.0.1 random ``` > 开发问题以及解决方案: ## 1.添加背景图片动态滚动问题 ### 解决方案 ``` 多添加一个背景精灵图,设置初始位置为背景图片高度为 -背景图片高度;形成两个叠加背景 每次沿着Y移动x像素,判断是否移出屏幕,重新设置y值为 -背景图片高度 ``` ## 2.英雄飞机火焰喷射 ### 解决方案 ``` 玩家飞机的图片分两种,一种是正常的状态,一种是火焰喷射的状态; 想要动态做出火焰喷射的状态就需要切换不同的图片(状态),并且火焰的流畅度还需要控制使用帧数控制,例如刷新率60帧,前面30帧是图片一,后面30帧是图片二 ``` ## 3.背景音乐播放 ### 解决方案 ``` 使用pygame.mixer模块,加载背景音乐,并且设置循环播放 pygame.mixer.music.load(path) pygame.mixer.music.set_volume(volume) pygame.mixer.music.play(loops) ``` ## 4.音效播放 ### 解决方案 ``` 使用pygame.mixer模块,加载音效音频资源,在需要播放的敌方调用play() ``` ## 5.玩家飞机爆炸效果 ### 解决方案 ``` 使用玩家飞机爆炸的三张图片完成,使用帧控制播放 ``` ## 6.分数显示效果 ### 解决方案 ``` 使用pygame.font模块,将玩家的分数实时显示 ``` ## 7.游戏结束显示 ### 解决方案 ``` 判断敌机是否撞到玩家飞机,是->调用game_over(),在这个函数进行循环 ``` ## 8.游戏排行榜显示 ### 解决方案 ``` 使用txt文件存储记录,进行读文件查看排行榜使用pygame.font模块显示,对比提示是否是记录, ``` ## 游戏指南 上下左右移动飞机 空格键开火 ## 效果截图 ![](img/游戏界面.png) ![](img/游戏结束.png)