英文打字游戏项目

项目简介

英文打字小游戏,友好的多界面交互,界面整洁、美观,可动态调节游戏等级难度,可配置游戏信息。

有游戏分数,游戏时间,拼写特效,背景音乐,不同游戏等级的历史最高分记录。

拼写成功的英文单词显示中文意思。支持长按回删键[backspace],快速删除单词字母。

多种游戏困难等级让玩家可以侧重提高打字速度、或者练习英语单词。

游戏开始界面

  • 游戏开始选项
  • 游戏设置选项
  • 游戏历史最高选项
  • 实现各选项点击进入相对应的功能界面

游戏设置界面

  • 展示游戏配置信息

    • 游戏困难等级
    • 游戏初始血量
    • 英文单词的大小
    • 英文单词的颜色
  • 实现动态调节游戏配置信息
    • 游戏等级、初始血量
    • 单词的大小、颜色
    • 可更换游戏背景图、背景音乐
  • 分别实现暂时保存游戏配置信息、永久游戏配置信息

游戏历史最高纪录界面

  • 展示各游戏困难等级的历史最高纪录

    • 游戏困难等级
    • 最高分
    • 耗时
    • 创建时间

游戏运行界面

  • 加载背景音乐(可设为静音模式)

  • 英文单词从上向下降落

  • 可在界面上英文打字并显示

  • 显示游戏血量、游戏分数

  • 支持长按回删键,快速删除单词字母

  • 实现英文单词拼写成功的颜色突出、分数计分功能

  • 在游戏中,可临时调节游戏信息

游戏结束界面

  • 显示当局游戏分数信息

    • 游戏困难等级

    • 累计得分

    • 所耗时间

    • 历史最高分

  • 退出、重玩游戏选项

开发环境

编程语言

编程语言 版本号
Python 3.7.1

开发工具

工具名称 工具版本
PyCharm 2019.3.1

第三方库

第三库名称 版本号
pygame 1.9.6
pyinstaller 4.0
PySimpleGUI 4.26.0

第三方库说明

pygame: 用于绘制英文打字游戏运行窗口,整体实现游戏动画效果。

pyinstaller: 把项目打包成可执行文件(.exe),可在 Windows 环境下运行程序,无需 Python 环境。

PySimpleGUI: 绘制游戏整体交互窗口(开始、设置、历史最高窗口)。

游戏素材

素材 文件/路径
游戏音乐 resource/music/…
游戏字体 resource/font/HUI.TTF
游戏背景图、图标 resource/image/…
英语四级单词文本 resource/en_word.txt

项目架构概览

目录树形结构

WordSprite
├─.idea
│  └─inspectionProfiles
├─bin
│  └─resource
│      ├─font
│      ├─image
│      │  └─animation
│      └─music
├─document
└─source
│    └─resource
│        ├─font
│        ├─image
│        │  └─animation
│        └─music
├─readme.md

项目目录结构图

页面功能图

界面展示/使用说明

游戏主界面

游戏运行界面

游戏运行界面,会根据你键盘输入的单词去匹配游戏垂直降落的单词。

  • 单词前缀匹配成功有颜色突出。
  • 完全匹配(单词拼写成功)会显示相对应的中文意思,游戏分数加一,游戏血条增加,并且显示拼写动画特效。
  • 游戏运行期间游戏血条会一直逐渐减少,游戏结束、暂停才会停止。
  • 降落的单词超出游戏屏幕,游戏血条减少。
  • 游戏每增加10分、游戏血条快满时,降落的单词速度短暂增速。
  • 游戏血条不同状态有不同的颜色显示。
  • 可打开游戏设置界面(游戏暂停),动态调节游戏配置信息。
  • 播放背景音乐。

游戏结束界面


游戏结束界面,展示了游戏当前等级、分数及当前游戏等级的历史最高,还可供玩家选择是否在玩一局或者退出。

游戏设置界面

游戏设置界面用于调节游戏配置信息,游戏运行时也可以调出动态调节。

调节游戏等级

游戏分为五个等级,分别为

游戏等级 名称 单词下落速度
1 简单 0.3
2 上手 0.5
3 中等 1.0
4 困难 1.5
5 魔鬼 2.0

游戏运行期间游戏血条会一直逐渐减少、降落的单词超出游戏屏幕,游戏血条减少,游戏血条减少的程度都随着游戏等级的提高而提高。

其他调节

  • 游戏字体大小
  • 游戏初始血条
  • 游戏静音状态
  • 游戏单词字体颜色
  • 单词拼写匹配成功的突出颜色

配置信息保存

临时保存

临时保存,可用于试探不同的配置信息的游戏效果如何,看看是否满意,如果不满意,又可换回原来的配置信息。

临时保存适用于当局游戏有效,重玩、重开都无效。

永久保存

永久保存将把游戏配置信息写入配置文件中,永久生效。

注意:游戏静音状态的调节,无需保存也可实现效果,但每次打开游戏的时候都是声音开放状态。

游戏历史最高界面

历史最高界面,显示着不同游戏等级的历史最高分记录。

  • 最高分
  • 游戏耗时
  • 记录创建时间

游戏版本信息、关于作者

最后就是游戏版本、作者信息。制作不易,留下你的小红心❤️。

源代码

源代码已上传到 GitHub Word Sprite,欢迎大家下载玩耍。

✍ 码字不易,点亮小星星 ⭐️,万分感谢

Python、PyGame游戏项目相关推荐

  1. 手把手讲解超详细python入门游戏项目‘打外星飞船’(二)

    手把手讲解超详细python入门游戏项目'打外星飞船'(二) 上次我们在(一)中创建了游戏的背景,现在我们这里将要实现用键盘控制飞船的移动.射击子弹,但是在此之前我们还有一个非常重要的部分–重构. 重 ...

  2. 手把手讲解超详细python入门游戏项目‘打外星飞船’(四)

    手把手讲解超详细python入门游戏项目'打外星飞船'(四) 在经过创立屏幕.飞船移动和设置子弹,我们这里开始设置外形人的创建和移动.我们这里主要的任务是:创建一众外星人让它们充满屏幕,让他们向下和两 ...

  3. 手把手讲解超详细python入门游戏项目‘打外星飞船’(五)

    手把手讲解超详细python入门游戏项目'打外星飞船'(五) 这是最后一个项目了,前面我们讲了整个游戏页面的控制.飞船.子弹.外星人的创建,这里我们讨论一下子弹射杀外星人和整个游戏的结束,我们这里的文 ...

  4. 手把手讲解超详细python入门游戏项目‘打外星飞船’(三)

    手把手讲解超详细python入门游戏项目'打外星飞船'(三) 第三部分我们讲解一下飞船需要射出子弹,那么子弹的部分是怎么操作呢?接下来我直接把项目的四个文件展示出来,以注释的形式在旁边讲解.因为有很多 ...

  5. 手把手讲解超详细python入门游戏项目‘打外星飞船’(一)

    手讲解超详细python入门游戏项目'打外星飞船'手把(一) 由于内容比较多,这里会分为五篇文章来讲解,从页面的创建.飞船控制.射击.外星人创建.射杀外星人五片来展开. 做一个窗口和设置响应用户 im ...

  6. Python pygame 坦克大战

    Python pygame 坦克大战 import pygame, time, random from pygame.sprite import SpriteSCREEN_WIDTH = 750 SC ...

  7. PYTHON pygame库实战——实现双人弹球小游戏

    PYTHON pygame实战--运用pygame库实现双人弹球小游戏 使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截 ...

  8. python pygame 简单小游戏

    python pygame 简单小游戏 最近学习了pygame,感觉十分有意思,花了一点时间制作了一个简单的小游戏 效果图 这是一个很简单的防守类小游戏 玩家可以使用wasd控制人物移动,并且鼠标控制 ...

  9. 保姆级教学——Python+Pygame怎么实现吃豆豆游戏

    耽搁十几天的时间,我顺利的从阳转阴啦, 以后的日子一切恢复正常,好好工作,积极分享.希望在座的小伙伴阳了的全部健康转阴,没阳的全部不会变阳,新的一年,一切顺顺利利. 不知道最近大家学习得怎么样?有没有 ...

  10. 小甲鱼python游戏代码_【小甲鱼】零基础学习python pygame 飞机大战可执行源代码...

    [实例简介] [小甲鱼]零基础学习python pygame 飞机大战可执行源代码,觉得挺有意思,故此分享. [实例截图] [核心代码] 飞机大战 └── 飞机大战 ├── bullet.py ├── ...

最新文章

  1. Xcode - Other Linker Flags
  2. qlabel 边加载边更新_王者荣耀:9月版本更新,九位英雄调整,三大战边回归,飞牛笑了...
  3. c语言 strlower 将所有的字母转化为小写字母
  4. 今日计划: 2022-02-15
  5. windows WebStorm常用快捷键记录,常用的都在这儿找扒
  6. Ubuntu 16.04 安装Python 3.6
  7. struts2的select标签的用法
  8. JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean...
  9. poj1200 Crazy Search(hash)
  10. 蓝桥杯省赛2017年Java组B组
  11. python读取大文件太慢_python - 为什么使用Python异步从文件读取和调用API比同步慢? - 堆栈内存溢出...
  12. laravel框架自带登录注册
  13. 本土化Linux系统,科学网—linux本地化进行lefse分析 - 林国鹏的博文
  14. 股票交易接口申请方式有哪几种?
  15. R语言必看推荐:R语言入门经典版(中文版)+R语言实战第二版(中文完整版)
  16. 中小企业的需求管理软件都有哪些
  17. 历史上的今天mysql数据库包含详情分类以及图片(免费分享)
  18. java实现加权随机,负载均衡--加权随机算法(Weight Random)
  19. 嵌入式是什么?arm是什么?
  20. 【STM32F429的DSP教程】第12章 DSP基础函数-相反数,偏移,移位,减法和比例因子

热门文章

  1. [读书] 《未来世界的幸存者》关于熵减的心得
  2. turtle库 科赫雪花(bug)的绘制
  3. Redis 的过期策略都有哪些?
  4. 10种常用数据分析方法
  5. unity3D游戏素材素材哪家强?Top3都在这!
  6. Python生成exe可执行文件
  7. 如何将现有Apple ID 更改为美区
  8. 北京圣思园经典Java培训教学视频分享
  9. 打包java项目_Java项目常见打包方式
  10. 已知主机IP地址,计算网络地址和广播地址