我們剛開始使用 Tkinter,當我們的編程教授問我們是否可以嘗試使用 Tkinter 作為我們大學一年級的最終專案來制作游戲,特別是 4 張圖片 1 個單詞,我需要幫助,我如何才能將級別提高到 每當按下下一個按鈕時,1 和 10 的硬幣?非常感謝任何見解。下面給出代碼和示例輸出以供參考
from distutils.cmd import Command
from tkinter import *
from turtle import heading, width
from PIL import Image, ImageTk
root = Tk()
root.title("4 pics 1 word")
root.geometry("500x650")
root.maxsize(500,650)
root.iconbitmap ("4picslogo.ico")
#Variable
levelno = 1
coins = 100
counter = 0
picNum = 0
#def
def nextlevel():
global levelno
levelno = levelno 1
if levelno==50:
levelno=1
global coins
coins = coins 10
def changeImage():
global picNum
picNum =1
if picNum==50:
picNum=0
pics.config(file=picfiles[picNum] ".png")
nextPic.config(text="PASS " str(picNum 1))
#Frames
frame_1 = Frame(root, width=500, height=150)
frame_1.pack (side=TOP)
frame_2 = Frame(root,width=500, height=300)
frame_2.pack ()
frame_3 = Frame(root, width=500, height=200)
frame_3.pack ()
#FrameOne (Level and coins bar)
Blue_bar = Label (frame_1, width=71,height=5,bg="#4472c4")
Blue_bar.grid()
levelcounter = Label (frame_1, text="Level: " str(levelno), font=("Helvetica",25,"bold"),fg="white",bg="#4472c4")
levelcounter.grid(row=0,column=0,sticky=W)
coinimg = PhotoImage(file="coins.png")
coins_pic = Canvas(frame_1, width=55, height=55, bg="#4472c4")
coins_pic.create_image(30,30, image=coinimg)
coins_pic.grid(row=0,column=0,padx=(320,0))
coin_counter = Label (frame_1, text="" str(coins), font=("Helvetica",25,"bold"),fg="white",bg="#4472c4")
coin_counter.grid(row=0,column=0,sticky=E,padx=(0,1))
#FrameTwo (Pictures to guess)
################################################################################################################################
f = open("picList.txt","r")
x = f.readlines()
picfiles = list()
for p in x:
fn = p.strip().split(';')
picfiles.append(fn[1])
pics = PhotoImage(file=picfiles[0] ".png")
pic_viewer = Label(frame_2,image=pics)
pic_viewer.grid(row=0,column=0,pady=(40,0))
################################################################################################################################
#FrameThree (Buttons)
button_picture_pass = PhotoImage(file='pass.png')
nextPic = Button(frame_3,image=button_picture_pass,text="" str(levelno 1),command=lambda:[changeImage(), nextlevel()])
nextPic.grid(padx=(400,0),pady=(135,0))
quitbutton = Button(root,text="Save and Quit", command = root.quit)
quitbutton.pack(anchor=E,padx=(0,22))
root.mainloop()
uj5u.com熱心網友回復:
更新levelno并coins不會levelcounter自動更新coin_counter。您需要在內部更新它們nextlevel():
def nextlevel():
global levelno, coins
levelno = 1
if levelno == 50:
levelno = 1
coins = 10
# update counter labels
levelcounter['text'] = f'Level: {levelno}'
coin_counter['text'] = coins
uj5u.com熱心網友回復:
我不熟悉這段代碼,但在撰寫代碼方面確實有一些經驗。
看來你想要的東西已經在這個函式中了
def nextlevel():
global levelno
levelno = levelno 1
if levelno==50:
levelno=1
global coins
coins = coins 10
在這里定義 Next 按鈕:
button_picture_pass = PhotoImage(file='pass.png')
在這里您觸發功能以在按下時增加級別和金錢:
nextPic = Button(frame_3,image=button_picture_pass,text="" str(levelno 1),command=lambda:[changeImage(), nextlevel()])
所以我不確定問題是什么:D
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/490465.html
