Python 巨蟒点击游戏

Python 巨蟒点击游戏,python,tkinter,Python,Tkinter,我已经想出了一些代码,我正在使用的点击游戏,有点像饼干点击 from tkinter import * import time master = Tk() def uiPrint(): info() print("") print(click) blankLine() def info(): print("Double click purchases need 50 clicks!") print("Auto clicker purchase

我已经想出了一些代码,我正在使用的点击游戏,有点像饼干点击

from tkinter import *
import time

master = Tk()

def uiPrint():
    info()
    print("")
    print(click)
    blankLine()

def info():
    print("Double click purchases need 50 clicks!")
    print("Auto clicker purchases need 75 clicks!")

info()

click = 0
mult = 1
dcp1 = 0

def blankLine():
    for i in range(20):
        print("")

def purchaseDoubleClicksCommand():
    global click
    global mult
    if click < 5:
        print("Not enough clicks!")
        blankLine()
    elif click >= 5:
        mult = mult*2
        click = click - 5
        print("Double Clicks Purchased!")
        blankLine()


def purchaseAutoClickerCommand():
    global click
    if click < 7:
        print("Not enough clicks!")
        blankLine()
    elif click >= 7:
        click = click - 7
        print("Auto clicker purchased!")
        while True:
            click = click + 1
            time.sleep(1)


def buttonCommand():
    global click
    global mult
    click += 1*(mult)
    uiPrint()

    if click == 100:
        print('''Achievement Unlocked: Junior Clicker!
        BONUS 100 clicks!''')
        click += 100

    elif click == 400:
        print ('''Achievement Unlocked: Little Ninja Clicks!
        BONUS 200!''')
        click += 300

    elif click == 1500:
        print ('''Achievement Unlocked: Click Ninja Master!
        QUAD CLICKS!''')
        mult = mult * 4

    elif click == 3000:
        print ('''Achievement Unlocked:  Jackie Chan Style!
        8 TIMES THE CLICKS!''')
        mult = mult * 8

mainClickButton = Button(master, text="Click!", command = buttonCommand)
mainClickButton.pack()

purchaseDoubleClickButton = Button(master, text="Purchase Double Clicks", command = purchaseDoubleClicksCommand)
purchaseDoubleClickButton.pack()

purchaseAutoClickerButton = Button(master, text="Purchase Auto Clicker", command = purchaseAutoClickerCommand)
purchaseAutoClickerButton.pack()

master.title("Clicker! v0.0.6")
master.geometry("%sx%s+%s+%s" % (200,70,512,512))
mainloop()
当我点击“购买自动点击器”按钮时,不仅点击次数没有每秒增加一次,而且整个应用程序都崩溃了

因此,我的主要问题是,如何让游戏本身的点击次数每秒增加一次(用户无需将鼠标停留在“点击!”按钮上),以及当购买了多个自动点击器时,如何让自动点击器堆叠(另外,我不希望程序在尝试购买时立即崩溃)

编辑此文件以使Scratso看到:

这就是我对代码所做的更改

click = 0
mult = 1
dcp1 = 0
autoclickers = 0

def blankLine():
    for i in range(20):
        print("")

def purchaseDoubleClicksCommand():
    global click
    global mult
    if click < 5:
        print("Not enough clicks!")
        blankLine()
    elif click >= 5:
        mult = mult*2
        click = click - 5
        print("Double Clicks Purchased!")
        blankLine()


def purchaseAutoClickerCommand():
    global click
    global autoclickers
    if click < 7:
        print("Not enough clicks!")
        blankLine()
    elif click >= 7:
        autoclickers += 1 # add an autoclicker
        click = click - 7
        print("Auto clicker purchased!")

tkinter
应用程序中使用
sleep()。相反,在根
tkinter
对象上调用
after()
,告诉它在给定的毫秒数之后执行给定的命令(函数)。此
after()
调用将放置在函数本身中,以便在正常调用此函数后,一秒钟后再次调用它

autoclickers=0 # start autoclickers at 0

def purchaseAutoClickerCommand():
    global click
    global autoclickers # declare global
    if click < 7:
        print("Not enough clicks!")
        blankLine()
    else:
        click -= 7 # pay for an autoclicker
        print("Auto clicker purchased!")
        autoclickers += 1 # receive an autoclicker

def autoclick():
    global master
    global click
    global autoclickers
    click += autoclickers # get clicks from autoclickers
    master.after(1000, autoclick) # do this again 1 second later

autoclick() # start benefiting from all existing autoclickers
autoclickers=0#在0时启动autoclickers
def purchaseAutoClickerCommand():
全局单击
全局自动单击器#声明全局
如果单击<7:
打印(“点击次数不足!”)
空白行()
其他:
点击-=7#支付自动点击器费用
打印(“购买自动点击器!”)
自动点击器+=1#接收自动点击器
def autoclick():
全局主控
全局单击
全局自动单击器
单击+=自动单击器#从自动单击器获得单击
大师(1000,自动点击)#1秒后再做一次
autoclick()#开始从所有现有的autoclick中获益

tkinter
应用程序中使用
sleep()
的问题在于它会弄乱GUI的更新方式。相反,在根
tkinter
对象上调用
after()
,告诉它在给定的毫秒数之后执行给定的命令(函数)。此
after()
调用将放置在函数本身中,以便在正常调用此函数后,一秒钟后再次调用它

autoclickers=0 # start autoclickers at 0

def purchaseAutoClickerCommand():
    global click
    global autoclickers # declare global
    if click < 7:
        print("Not enough clicks!")
        blankLine()
    else:
        click -= 7 # pay for an autoclicker
        print("Auto clicker purchased!")
        autoclickers += 1 # receive an autoclicker

def autoclick():
    global master
    global click
    global autoclickers
    click += autoclickers # get clicks from autoclickers
    master.after(1000, autoclick) # do this again 1 second later

autoclick() # start benefiting from all existing autoclickers
autoclickers=0#在0时启动autoclickers
def purchaseAutoClickerCommand():
全局单击
全局自动单击器#声明全局
如果单击<7:
打印(“点击次数不足!”)
空白行()
其他:
点击-=7#支付自动点击器费用
打印(“购买自动点击器!”)
自动点击器+=1#接收自动点击器
def autoclick():
全局主控
全局单击
全局自动单击器
单击+=自动单击器#从自动单击器获得单击
大师(1000,自动点击)#1秒后再做一次
autoclick()#开始从所有现有的autoclick中获益

我自己下载了一个自动点击器,在点击按钮上按住鼠标5秒钟,在双击按钮上按住鼠标10秒钟后,我达到了这个点击量。(复制、粘贴)


7555567837689378689347684578683786745788976536899743221279075430987683978387683767937787388765747556787868937868686868686868474578378674889765368997432212790754309876838387878737678787878738873768686887878787878787467878878787876868686868878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878778897653689974322127907543098763688934768457868378674578897653689974322127907543098763683978387683767937784870388737657475555678376893786893476445533384578683786745788976536899743221279075430987636839783876837679377848703887376574755556783768937868934224457684578683786745788976536899743221279075430987636839783876837679377848703887376574755556783768937868934768457868378674578897653689974322127907543098763683978387683767937784870388737657475555678376893786893476845786837867457889765368997432212790754309876366666666664344667645544448397838768376793778487038873765747555567837689378689347684578683786745788976536899743221279075430987636839783876837679377848703887333765747555567837689378689347684578683786745788976536899743221279075430987636839783876837679377848703887376574755556783768937868934768457868378674578897653689974322127907543098783978383333368376793778487038873765747555567837689378689347684578683786745788976536899743221279075430987636839783876837679377848703887376574755556783768937868934768457868378674578897653689974322127907543098763683978387683767937784870388737657475555678376893786893476845786837867457889765666536899743221279075430987636839783876837679377848703887376574755556783768937868934768457868378674578897653689974322127907543098763683978387683767937784870388737657475555678376893786893476845786837867457889765368997432212790754309876368397838768376793778487038873765747555567837689378689347684578683786745788976536899743221279075430987636839783876837679377848703887376574755556783768937868934768457868378674578897653689974322127907543098763683978387683767937784870388737657475555678376893786893476845786837867457889765368997432212790754309876368397838768376793778487038873765747555567837689378689347684578683786745788976536899743221279075430987636839783876837679377848703887376574我自己下载了一个自动点击器,在点击按钮上按住鼠标5秒,在双击按钮上按住鼠标10秒后,我达到了这个点击量。(复制、粘贴)

755556783768937868934768457868378674578897653689974322127907543098768397838768376793778738876574755678786893786868686868686847457837867488976536899743221279075430987683838787873767878787873887376868688787878787878746787887878787686868686887878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787877889765368997432212790754309876368893476845786837867457889765368997432212790754309876368397838768376793778487038873765747555567837689378689347644553338457868378674578897653689974322127907543098763
while True:
    mainClickButton = Button(master, text="Click!", command = buttonCommand)
    mainClickButton.pack()

    purchaseDoubleClickButton = Button(master, text="Purchase Double Clicks", command = purchaseDoubleClicksCommand)
    purchaseDoubleClickButton.pack()

    purchaseAutoClickerButton = Button(master, text="Purchase Auto Clicker", command = purchaseAutoClickerCommand)
    purchaseAutoClickerButton.pack()

    master.title("Clicker! v0.0.6")
    master.geometry("%sx%s+%s+%s" % (200,70,512,512))
    mainloop()

    for autoclicker in range(autoclickers):
        click += 1
    time.sleep(1)
autoclickers=0 # start autoclickers at 0

def purchaseAutoClickerCommand():
    global click
    global autoclickers # declare global
    if click < 7:
        print("Not enough clicks!")
        blankLine()
    else:
        click -= 7 # pay for an autoclicker
        print("Auto clicker purchased!")
        autoclickers += 1 # receive an autoclicker

def autoclick():
    global master
    global click
    global autoclickers
    click += autoclickers # get clicks from autoclickers
    master.after(1000, autoclick) # do this again 1 second later

autoclick() # start benefiting from all existing autoclickers