使用python的tkinter库函数制作剧情走向小游戏及tkinter基本用法介绍

利用Python的tkinter库构建了一个简易剧情走向游戏,通过不同选择影响故事发展,最终决定结局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天闲来无事,用python的tkinter库函数制作了一个剧情走向小游戏。
中二的初始化界面:

在这里插入图片描述
故事背景:
在这里插入图片描述
剧情:
在这里插入图片描述
感兴趣的小伙伴可以自己玩一下:原码链接

代码思路如下:首先创建一个基本root窗口basedesk,其他窗口均为root窗口的子窗口。

class basedesk():
    def __init__(self, master):
        self.root = master
        self.root.config()
        self.root.title('大冒险')
        self.root.geometry('750x150')
        Init(self.root)   

basedesk中建立Init窗口为初始化界面:

class Init():
    def __init__(self, master):
        self.master = master
        self.master.config()
        self.face = tk.Frame(self.master,)
        self.face.pack()
        self.texts = get_story()
        global key
        key = False
        label = tk.Label(self.face, text="准备好开始一场惊险刺激的冒险了吗?", font=font).pack()
        b = tk.Button(self.face, text='开始冒险', command=self.begin)
        b.pack()
        
    def begin(self,):       
        self.face.destroy()
        BaseChoices(self.master, self.texts)  

显示界面如下:

在这里插入图片描述
然后从Init界面进入基本选择界面BaseChoices,其中设置全局变量key为触发键,只有前文剧情满足条件才能触发关键选项。

class BaseChoices():
    def __init__(self, master, texts):
        global key
        self.master = master
        self.master.config()
        self.face = tk.Frame(self.master,)
        self.face.pack()
        self.texts = texts
        print(self.texts['text'])
        tk.Label(self.face, text=self.texts['text'], font=font).pack()
        if self.texts['key'] != 'b1_key' or key:
            b1 = tk.Button(self.face, text=self.texts['b1text'], command=self.b1)
            b1.pack()
        if self.texts['key'] != 'b2_key' or key:
            b2 = tk.Button(self.face, text=self.texts['b2text'], command=self.b2)
            b2.pack()

    def b1(self):
        self.next('b1')
        
    def b2(self):
        self.next('b2')
    
    def next(self, s):
        self.face.destroy()
        if self.texts['key'] == '{}_lose'.format(s) or self.texts['key'] == 'lose':
            Lose(self.master, texts=self.texts[s])
        elif self.texts['key'] == '{}_key'.format(s):
            Win(self.master, texts=self.texts[s])
        else:
            if self.texts['key'] == '{}_getkey'.format(s):
                global key
                key = True
            BaseChoices(self.master, texts=self.texts[s])

正文中的texts['key']用来判断接下来是进入基本选择界面、还是结束界面(通关或失败)。

class Lose():
    def __init__(self, master, texts):
        self.master = master
        self.master.config()
        self.face = tk.Frame(self.master,)
        self.face.pack()
        self.texts = texts
        print(self.texts['text'])
        tk.Label(self.face, text=self.texts['text'], font=font).pack()
        tk.Label(self.face, text="游戏失败,你输了", fg='red', font=font).pack()
        b = tk.Button(self.face, text='重新开始', command=self.begin)
        b.pack()
        
    def begin(self,):       
        self.face.destroy()
        Init(self.master)  


class Win():
    def __init__(self, master, texts):
        self.master = master
        self.master.config()
        self.face = tk.Frame(self.master,)
        self.face.pack()
        self.texts = texts
        print(self.texts['text'])
        tk.Label(self.face, text=self.texts['text'], font=font).pack()
        tk.Label(self.face, text="恭喜你通关!", fg='green', font=font).pack()
        b = tk.Button(self.face, text='再玩一次', command=self.begin)
        b.pack()
        
    def begin(self,):       
        self.face.destroy()
        Init(self.master)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只蓝鲸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值