游戏功能

游戏开始,屏幕随机显示一个字符,按 Enter 游戏开始,每个字母有10秒的按键时间,如果按对,则随机产生新的字符,一共60s,如果时间到了,则游戏结束。

引入包,初始化配置信息

import sys, random, time, pygame
from pygame.locals import *pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("打字速度")while True:for event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()screen.fill((255, 192, 128))pygame.display.update()

初始化游戏提示信息

首先设置两种字体,然后封装一个屏幕上写字的函数,写出提示。

white = 255, 255, 255font1 = pygame.font.SysFont("方正粗黑宋简体", 24)
font2 = pygame.font.SysFont("方正粗黑宋简体", 200)def print_text(font, x, y, text, color=white):img_text = font.render(text, True, color)screen.blit(img_text, (x, y))
while True:---print_text(font1, 0, 0, "看看你的速度有多快")print_text(font1, 0, 30, "请在10秒内尝试")---

显示随机的字母

使用 ASCII 字符表,键盘上默认输入的是小写,97 - 122,然后我们使用chr() 函数减去32,就可以得到对应的大写字母,将其写在窗口上

# 随机的字母
correct_answer = random.randint(97, 122)
while True:---print_text(font2, 0, 240, chr(correct_answer - 32), (255, 255, 0))---

设置游戏的属性

# 是否按键
key_flag = False
# 游戏是否开始 默认是结束的
game_over = True
# 随机的字母
correct_answer = random.randint(97, 122)
# 分数
score = 0
# 开始时间
clock_start = 0
# 读秒倒计时
seconds = 11

根据用户的按键改变对应的属性,如果游戏重新开始,重置对应的属性。

while True:for event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()elif event.type == KEYDOWN:key_flag = Trueelif event.type == KEYUP:key_flag = Falsekeys = pygame.key.get_pressed()if keys[K_ESCAPE]:sys.exit()if keys[K_RETURN]:if game_over:game_over = Falsescore = 0clock_start = time.perf_counter()seconds = 11

使用 time.perf_counter() 获取程序运行到当前的时间,计算差值,实现在屏幕上的倒计时,并根据时间结束游戏或者重新开始

 current = time.perf_counter() - clock_startif seconds - current < 0:game_over = Trueelif current <= 10:if keys[correct_answer]:correct_answer = random.randint(97, 122)score += 1clock_start = time.perf_counter()if not game_over:print_text(font1, 0, 80, "Time: " + str(int(seconds - current)))print_text(font1, 500, 40,  str(int(time.perf_counter())))

完整代码

import sys, random, time, pygame
from pygame.locals import *pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("打字速度")
font1 = pygame.font.SysFont("方正粗黑宋简体", 24)
font2 = pygame.font.SysFont("方正粗黑宋简体", 200)
white = 255, 255, 255
yellow = 255, 255, 0
# 是否按键
key_flag = False
# 游戏是否开始 默认是结束的
game_over = True
# 随机的字母
correct_answer = random.randint(97, 122)
# 分数
score = 0
# 开始时间
clock_start = 0
# 读秒倒计时
seconds = 11def print_text(font, x, y, text, color=white):img_text = font.render(text, True, color)screen.blit(img_text, (x, y))while True:for event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()elif event.type == KEYDOWN:key_flag = Trueelif event.type == KEYUP:key_flag = Falsekeys = pygame.key.get_pressed()if keys[K_ESCAPE]:sys.exit()if keys[K_RETURN]:if game_over:game_over = Falsescore = 0clock_start = time.perf_counter()seconds = 11screen.fill((0, 100, 0))current = time.perf_counter() - clock_startprint_text(font1, 0, 0, "看看你的速度有多快")print_text(font1, 0, 30, "请在10秒内尝试")if seconds - current < 0:game_over = Trueelif current <= 10:if keys[correct_answer]:correct_answer = random.randint(97, 122)score += 1clock_start = time.perf_counter()# 如果按键了if key_flag:print_text(font1, 500, 0, "按键了")if not game_over:print_text(font1, 0, 80, "Time: " + str(int(seconds - current)))print_text(font1, 500, 40,  str(int(time.perf_counter())))print_text(font1, 0, 100, "分数: " + str(score))if game_over:print_text(font1, 0, 160, "请按enter开始游戏...")print_text(font2, 0, 240, chr(correct_answer - 32), yellow)pygame.display.update()

检测按键正确的小游戏相关推荐

  1. 【笔记】C++ 命令行小游戏 节奏大师(别踩白块) 的制作

    一.游戏介绍 计组实验大作业要在板子上做一个小游戏,我们组要做节奏大师,先在命令行里做了一个,主界面只有4*20. 可以选歌,目前支持的有:1.两只老虎, 2.两只老虎无尽版. 开始游戏后∗*∗号会从 ...

  2. 使用Java在线编译器手搓一款摸鱼小游戏

    这其实是一篇摸鱼指南. 这篇文章主要是学习如何使用Java在线编译器在浏览器中制作一个 猜数字的小游戏 ,真的只需要有网+有浏览器就可以.想学习Java编程的小伙伴可以静下来认真学习,纯粹想摸鱼的小伙 ...

  3. 开发者该如何抓住微信小游戏的风口?听Cocos创始人王哲详解(上篇)

    在微信小游戏真正爆发之前,你该做好这些基础知识储备. 微信小游戏在2017年12月28日正式上线.相对于传统的H5游戏,小游戏的优势十分明显,拥有微信庞大的用户量以及更好的兼容性,在天生适合微信社交生 ...

  4. 模拟登录,给三次机会,并提示还有几次。如果登录成功,就可以玩猜数字小游戏了。

    1.猜字谜小游戏 *随机生成一个数 *从键盘录入一个数与随机数进行比较,判断是大了还是小了 * */ package test1;import java.util.Scanner;public cla ...

  5. iOS如何测试微信小游戏小程序?

    "微信小游戏性能评测标准建立的初衷是希望能引导开发者优化相关性能数据,提升用户体验.评测标准根据小游戏整体的性能数据表现.玩家体验评价,结合操作系统.机型分档.网络条件等多种维度建立.&qu ...

  6. 微直播笔记|三十分钟微信小游戏开发入门

    微信小游戏在2017年12月28日正式上线.相对于传统的H5游戏,小游戏的优势十分明显,拥有微信庞大的用户量以及更好的兼容性,在天生适合微信社交生态的同时还不用担心被屏蔽.无疑,这或许是一个巨大的风口 ...

  7. pygame中使用事件扫描实现对按键的检测以及小游戏的编写

    确保你的python环境已经安装了pygame的库 import pygame, sys, random import pygame.locals as GAME_GLOBALS import pyg ...

  8. qml自学笔记------自己写类似于劲舞团的按键小游戏(上)

    QML(Qt Meta-Object Language,Qt元对象语言)是一个用来描述应用程序的用户界面的声明式语言.花了点时间看完霍亚飞的<Qt及Qt Quick开发实战精解>后,为了巩 ...

  9. 和12岁小同志搞创客开发:检测按键状态的两件法宝

    目录 1.检测电平变化,判断按键状态 2.使用中断触发,判断按键状态 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. ​​​项目专栏:https://blog.csdn.n ...

最新文章

  1. Ubuntu环境变量
  2. 100题_22 整数的二进制表示中1的个数
  3. .NET Framework 各版本区别
  4. java进阶 2018_Java Web基础入门2018版
  5. C# 多态相关的文章
  6. 前端学习(1657):前端系列实战课程之文字输入框实现思路
  7. 【LeetCode】【HOT】438. 找到字符串中所有字母异位词(滑动窗口)
  8. php如何增加字段,php如何增加字段
  9. 谈谈层次分析法和熵权法以及Topsis
  10. xp计算机图标怎么设置在桌面显示,电脑系统是XP的,界面的“我的电脑”图标不知怎么变成快捷方式了...
  11. 恢复和去除时间(Recovery and Removal Time)
  12. 移动出手了!推出老用户专享“特权”,携号转网用户却要想清楚
  13. php5 dm.dll,win10模块dll加载失败二进制怎么解决?
  14. 从输入 url 到页面展示到底发生了什么
  15. python画中秋月饼,用turtle海龟库画中秋月饼
  16. EasyRoad3D简易使用手册
  17. CSDN文本MD编辑器教程【始终专一MD】
  18. 智能座舱测试——数据驱动开发的语音测试方案
  19. OBS插件开虚拟摄像头,学生党的福利
  20. 在shiro中控制自动登录

热门文章

  1. 计算机系统概述学后感,计算机操作系统学习心得体会总结(2)
  2. 技术报告 | 华为云中国信通院:云原生2.0 白皮书.pdf(附下载链接)
  3. 这些两轮电动车的黑科技你知道吗?
  4. 2010年全球移动行业回顾:iPad大热 中国崛起
  5. PageHelper分页插件上的PageInfo使用
  6. 【CSDN竞赛第四期】编程赛后总结与分享
  7. 初中英语语法(005)-时态
  8. 前端面试基础题总结 (必会)
  9. 安捷伦自动测试软件,安捷伦精干的测试工具
  10. 许昌一高2021年高考成绩查询,2020年许昌高中高考成绩怎么样啊??