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

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

使用python的tkinter库函数制作剧情走向小游戏及tkinter基本用法介绍_第1张图片
故事背景:
使用python的tkinter库函数制作剧情走向小游戏及tkinter基本用法介绍_第2张图片
剧情:
使用python的tkinter库函数制作剧情走向小游戏及tkinter基本用法介绍_第3张图片
感兴趣的小伙伴可以自己玩一下:原码链接

代码思路如下:首先创建一个基本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)  

显示界面如下:

使用python的tkinter库函数制作剧情走向小游戏及tkinter基本用法介绍_第4张图片
然后从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)  

你可能感兴趣的:(transformer,深度学习,人工智能)