Py学习  »  Python

实践:使用 Python 开发一款迷你游戏

Linux公社 • 1 年前 • 99 次点击  

点击上方蓝字 ● 关注Linux公社     

本文与大家一起学习如何在 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 = 0time_remaining = 60
定义一个名为 beginGame() 的函数,它将事件作为输入参数。该函数执行两个任务。首先,它检查 time_remaining 是否等于60。如果是,它调用并执行 countdown() 函数。其次,它调用 nextColour() 函数,在游戏进行时随机洗牌并显示颜色和分数。
def beginGame(event):    if time_remaining == 60:        countdown()    nextColour()
定义一个名为 nextColour() 的函数并全局引用变量。如果剩余时间大于 0,则在代码后半部分定义的条目标签(存储在变量 e 中)上使用focus_set() 方法将焦点设置在输入字段上。
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 窗口中的事件绑定,这样当玩家按下它时,就会执行特定的功能。
mainloop ()函数告诉 Python 运行 tkinter 事件循环并监听事件(例如按钮按下),直到您关闭窗口。
root.mainloop()
将所有代码放在一起,您就可以轻松玩转 Color Game。

使用 Python 输出颜色游戏

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

使用 Python 开发游戏

Python 是一种出色的游戏开发语言。该语言不仅易于理解和使用,而且使所有体验级别的游戏开发人员都能创造出有趣和有趣的令人惊叹的游戏世界。
此外,由于市场上提供的各种游戏开发平台,如PyGame或Kivy,创作者在将创意转化为现实时有多种选择。

如果需要完整代码,请扫描上方二维码关注 Linux迷 公众号。后台回复 pyg


感谢 Linux迷 www.linuxmi.com 的精彩分享。
OK,这就是本文的内容。如果还有什么疑问,请在下面的评论区告诉我们。
需要  Linux 精美艺术壁纸的朋友请加小编微信linuxgs口令壁纸)。
来自:Linux迷
链接:https://www.linuxmi.com/python-color-game.html
关注我们

长按或扫描下面二维码关注 Linux公社



关注 Linux公社,添加“ 星标 

每天 获取 技术干货,让我们一起成长

合作联系:root@linuxidc.net

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152392
 
99 次点击