使用 Python 开发迷你颜色游戏

本文与大家一起学习如何在 Python 中使用 Tkinter 构建颜色游戏

Battlefield2、World of Tanks、The Sims4 和 Freedom Force 是使用 Python 开发的数千款令人惊叹的游戏中的一部分。

Tkinter是 Tk GUI 工具包的标准 Python 接口,是一个功能强大的模块,可以轻松有趣地创建图形用户界面。利用此模块开发一个令人着迷的颜色游戏。此外,还将学习如何使用该模块。

什么是颜色游戏 Color Game?

在 Color Game 中,程序在屏幕上显示颜色的名称,但字体颜色不同。例如,它使用红色字体颜色显示“黄色”一词,玩家必须输入文本的颜色。

这种信息与计时器的不匹配造成了大量的混乱,并创造了一种有趣的游戏体验。

Tkinter 和 random 模块

要构建 Color Game,您将使用 tkinter 模块和 random 模块。Tkinter 是一个跨平台、简单且用户友好的 GUI 模块,可用于快速创建图形用户界面。

它有一些有用的工具,例如标签和条目小部件以及布局管理器,例如包、网格和位置。提供的功能非常简单,使新手程序员可以轻松设计应用程序而无需付出太多努力。要在您的系统中安装 tkinter,请在终端中运行以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
⚡ sudo apt install python3-tk

random 模块是一个内置库,您可以使用它生成随机选择。使用此模块,您可以开发手板球游戏、猜数字游戏、魔术八球游戏、随机密码生成器等。

如何使用 Python 构建颜色游戏

首先导入 tkinter 和 random 模块。将颜色colours名称存储为字符串列表,并将 score 变量初始化为 0,将 time_remaining 初始化为 60。

from tkinter import *
import random

colours = ['Red', 'Green', 'Blue', 'Black', 'Pink', 'White', 'Purple', 'Yellow', 'Brown']
score = 0
time_remaining = 60

定义一个名为 beginGame() 的函数,它将事件作为输入参数。该函数执行两个任务。首先,它检查 time_remaining 是否等于60。如果是,它调用并执行 countdown() 函数。其次,它调用 nextColour() 函数,在游戏进行时随机洗牌并显示颜色和分数。

def beginGame(event):
    if time_remaining == 60:
        countdown()
    nextColour()

定义一个名为 nextColour() 的函数并全局引用变量。如果剩余时间大于 0,则在代码后半部分定义的条目标签(存储在变量 e 中)上使用focus_set() 方法将焦点设置在输入字段上。

使用 get() 方法将条目的当前文本作为字符串检索并将其转换为小写以避免大小写不匹配。如果这等于屏幕上显示的颜色,则将分数加一。使用 delete() 函数从 0 到条目小部件上的最后一个索引清除内容。

def nextColour():
    global score
    global time_remaining

    if time_remaining > 0:
        e.focus_set()
        if e.get().lower() == colours[1].lower():
            score += 1
        e.delete(0, END)

使用shuffle()函数对列表中的项目重新排序,并显示颜色标签,其中文本作为列表中的第一种颜色,字体颜色作为列表中的第二种颜色。使用scoreLabel上的config()函数(要求按 Enter)在游戏进行时显示分数。

        random.shuffle(colours)
        label.config(fg=str(colours[1]), text=str(colours[0]))
        scoreLabel.config(text="分数: " + str(score))

定义一个名为 countdown() 的函数,它引用剩余时间变量并将其减一。使用 timeLabelconfig() 函数显示屏幕剩余时间,使用 after() 函数在延迟 1000 毫秒或一秒后回调倒计时函数。

def countdown():
    global time_remaining
    if time_remaining > 0:
        time_remaining -= 1
        timeLabel.config(text="剩余时间: " + str(time_remaining))
        timeLabel.after(1000, countdown)

初始化 tkinter 实例并显示根窗口。设置窗口的标题、尺寸(以像素为单位)和背景颜色。

root = Tk()
root.title("颜色游戏 - Linux迷 www.linuxmi.com")
root.geometry("800x600")
root.configure(background='Orange')

使用标签小部件来指导玩家游戏说明。它接受您将放置它的父窗口。文本应显示字体类型和大小以及标签的背景颜色。在将标签小部件放入父小部件之前,使用pack()函数以块的形式组织标签小部件。

同样,定义分数标签以指示用户按Enter键开始游戏以及时间标签以显示剩余时间。确保所有标签都具有橙色背景色,以便它们融入背景。在nextColour()函数中定义一个包含颜色名称的空标签

instructions = Label(root, text="www.linuxmi.com 提醒你:键入单词的颜色而不是文本。 ;)", font=('Arial', 24), bg="orange")
instructions.pack()
scoreLabel = Label(root, text="按 Enter 键开始", font=('Arial', 24), bg="orange")
scoreLabel.pack()

如前所述,使用条目小部件来捕获玩家的答案。一个重要的步骤是将 Enter 键与 tkinter 窗口中的事件绑定,这样当玩家按下它时,就会执行特定的功能。

为此,您将<Return>键和beginGame()函数作为参数传递给bind()函数。此外,在您按下 Enter 键后,使用pack()和focus_set()方法来组织和设置输入标签上的焦点。

mainloop ()函数告诉 Python 运行 tkinter 事件循环并监听事件(例如按钮按下),直到您关闭窗口。

root.mainloop()

将所有代码放在一起,您就可以轻松玩转 Color Game。

使用 Python 输出颜色游戏

运行 Color Game 程序时,屏幕上会出现一个窗口。按 Enter 后,倒计时开始,玩家必须开始输入单词的颜色。每答对一次,分数加一,最后显示最终分数。

使用 Python 开发游戏

Python 是一种出色的游戏开发语言。该语言不仅易于理解和使用,而且使所有体验级别的游戏开发人员都能创造出有趣和有趣的令人惊叹的游戏世界。

此外,由于市场上提供的各种游戏开发平台,如PyGame或Kivy,创作者在将创意转化为现实时有多种选择。

The post 使用 Python 开发迷你颜色游戏 first appeared on Linux迷.

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/40172.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>