猫史档案馆


【Python作品分享】打字顺序练习【作品秀】

用户:罗文浩GGFh罗文浩GGFh查看:0 回复:0 评论:0 创建时间:2023-07-28T09:07:08


【作品展示】

center_image

 

【作品介绍】

哈哈

 

【作品源代码】

# -*- coding=utf-8 -*-
import pygame
from pygame.locals import KEYDOWN
import random

w, h = 800, 600 #w----width h--hight
pygame.init()
screen = pygame.display.set_mode((w, h))

white = 255, 255, 255
black = 111, 111, 111
myfont = pygame.font.Font(None, 80)

diff_ticks = 20
ticks = pygame.time.get_ticks() + diff_ticks
word_diff_ticks = 1000
word_ticks = pygame.time.get_ticks() + word_diff_ticks

zm = 0
def get_random_word():
    global zm
    color = (random.randint(0, 255), random.randint(
        0, 255), random.randint(0, 255))  # 颜色随机
    x = random.randint(100, w-100)  # x坐标从左右边距各100之间随机
    y = 0
    word = 65 + zm%26
    zm += 1
    return x, y, word, color


arr = []
arr.append(get_random_word())

clear_word = 0
level = 1
pygame.display.set_caption('typing level:%d' % level)
game_state = 1  # 1.进行中 2.游戏失败
sign = 1
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

    if game_state == 1 and len(arr) > 0 and event.type == KEYDOWN:
        if event.key == arr[0][2]+32:  # 大小写字母差32
            arr.pop(0)
            clear_word += 1
        if clear_word >= level*10:
            level += 1
            pygame.display.set_caption('typing level:%d' % level)
            diff_ticks = diff_ticks*0.9
            word_diff_ticks = word_diff_ticks*0.95

    screen.fill((255, 255, 255))

    for i in range(len(arr)):  # 绘制这些字母
        x, y, word, c = arr[i]
        #if i == 0 and sign:
        if i == 0:
            #c = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
            c = (200, 100, 100)
            textImage = myfont.render(chr(word), True, c)
            screen.blit(textImage, (x, y))

    if game_state == 2:
        textImage = myfont.render("Level%d fail" % level, True, (255, 0, 0))
        sw, sh = textImage.get_size()
        screen.blit(textImage, ((w-sw)/2, (h-sh)/2))  # 居中显示

    if game_state == 1:
        if pygame.time.get_ticks() >= word_ticks:  # 计时增加新字母
            word_ticks += word_diff_ticks
            arr.append(get_random_word())

        if pygame.time.get_ticks() >= ticks:
            ticks += diff_ticks
            sign = 1-sign
            for i in range(len(arr)):
                x, y, word, c = arr[i]
                arr[i] = (x, y+1, word, c)
                if len(arr) > 0 and arr[0][1] > h:
                    game_state = 2

    pygame.display.update()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页