欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pygame實戰(zhàn)之檢測按鍵正確的小游戲

 更新時間:2021年12月15日 08:55:11   作者:我的天才女友  
這篇文章主要為大家介紹了利用Pygame模塊實現(xiàn)的檢測按鍵正確的小游戲:每個字母有10秒的按鍵時間,如果按對,則隨機產生新的字符,一共60s,如果時間到了,則游戲結束??靵砀S小編一起學習一下吧

游戲功能

游戲開始,屏幕隨機顯示一個字符,按 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()

初始化游戲提示信息

首先設置兩種字體,然后封裝一個屏幕上寫字的函數(shù),寫出提示。

white = 255, 255, 255

font1 = 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() 函數(shù)減去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)
# 分數(shù)
score = 0
# 開始時間
clock_start = 0
# 讀秒倒計時
seconds = 11

根據(jù)用戶的按鍵改變對應的屬性,如果游戲重新開始,重置對應的屬性。

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

使用 time.perf_counter() 獲取程序運行到當前的時間,計算差值,實現(xiàn)在屏幕上的倒計時,并根據(jù)時間結束游戲或者重新開始

	current = time.perf_counter() - clock_start

    if seconds - current < 0:
        game_over = True
    elif current <= 10:
        if keys[correct_answer]:
            correct_answer = random.randint(97, 122)
            score += 1
            clock_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)
# 分數(shù)
score = 0
# 開始時間
clock_start = 0
# 讀秒倒計時
seconds = 11


def 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 = True
        elif event.type == KEYUP:
            key_flag = False
    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        sys.exit()
    if keys[K_RETURN]:
        if game_over:
            game_over = False
            score = 0
            clock_start = time.perf_counter()
            seconds = 11

    screen.fill((0, 100, 0))
    current = time.perf_counter() - clock_start
    print_text(font1, 0, 0, "看看你的速度有多快")
    print_text(font1, 0, 30, "請在10秒內嘗試")

    if seconds - current < 0:
        game_over = True
    elif current <= 10:
        if keys[correct_answer]:
            correct_answer = random.randint(97, 122)
            score += 1
            clock_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, "分數(shù): " + str(score))

    if game_over:
        print_text(font1, 0, 160, "請按enter開始游戲...")

    print_text(font2, 0, 240, chr(correct_answer - 32), yellow)

    pygame.display.update() 

以上就是Pygame實戰(zhàn)之檢測按鍵正確的小游戲的詳細內容,更多關于Pygame按鍵正確游戲的資料請關注腳本之家其它相關文章!

相關文章

  • Python Excel vlookup函數(shù)實現(xiàn)過程解析

    Python Excel vlookup函數(shù)實現(xiàn)過程解析

    這篇文章主要介紹了Python Excel vlookup函數(shù)實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • pandas.DataFrame.iloc的具體使用詳解

    pandas.DataFrame.iloc的具體使用詳解

    本文主要介紹了pandas.DataFrame.iloc的具體使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 解決安裝python庫時windows error5 報錯的問題

    解決安裝python庫時windows error5 報錯的問題

    今天小編就為大家分享一篇解決安裝python庫時windows error5 報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python破解極驗滑動驗證碼詳細步驟

    Python破解極驗滑動驗證碼詳細步驟

    學習python知識越來越多,大家都知道極驗驗證碼應用非常廣泛,今天小編就給大家分享Python破解極驗滑動驗證碼的詳細步驟,對Python極驗滑動驗證碼相關知識感興趣的朋友一起看看吧
    2021-05-05
  • Python 字典的使用詳解及實例代碼

    Python 字典的使用詳解及實例代碼

    今天小編幫大家簡單介紹下Python的一種數(shù)據(jù)結構: 字典,字典是 另一種可變容器模型,且可存儲任意類型對象,它用于存放具有映射關系的數(shù)據(jù),通讀本篇對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-11-11
  • Java byte數(shù)組操縱方式代碼實例解析

    Java byte數(shù)組操縱方式代碼實例解析

    這篇文章主要介紹了Java byte數(shù)組操縱方式代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 用Python+OpenCV對比圖像質量的幾種方法

    用Python+OpenCV對比圖像質量的幾種方法

    這篇文章主要介紹了用Python+OpenCV對比圖像質量過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python中列表和元組的使用方法和區(qū)別詳解

    Python中列表和元組的使用方法和區(qū)別詳解

    這篇文章主要介紹了Python中列表和元組的使用方法和區(qū)別詳解的相關資料,需要的朋友可以參考下
    2016-07-07
  • python中關于requests里的timeout()用法

    python中關于requests里的timeout()用法

    這篇文章主要介紹了python中關于requests里的timeout()用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Django模板過濾器和繼承示例詳解

    Django模板過濾器和繼承示例詳解

    初入python和django做項目,遇到很多前端頁面代碼冗余的情況,特別是頭部和腳部,代碼都是一樣的,所以下面這篇文章主要給大家介紹了關于Django模板過濾器和繼承的相關資料,需要的朋友可以參考下
    2021-11-11

最新評論