Когда вы используете time.sleep(1)
перед запуском window.mainloop()
, окно создается только через 1 секунду, и одновременно с ним будет создана метка FroggerDisplay
.Таким образом, вы не можете использовать time.sleep(seconds)
сейчас.
Однако вы можете использовать метод window.after(ms, func)
и поместить в функцию весь код между time.sleep(1)
и window.mainloop()
.Обратите внимание, что в отличие от time.sleep(seconds)
вы должны указать window.after
(первый аргумент) время как миллисекунды .
Вот отредактированный код:
from tkinter import *
def create_fd_label():
frogger_display = Label(root, font=("ComicSans", 100, "bold"), text="Frogger") # create a label to display
frogger_display.place(x=500, y=300) # place the label for frogger display
root = Tk() # create the root window
root.geometry("1300x899") # set the root window's size
loading_screen = PhotoImage(file="FroggerLoad.gif") # create the "Loading" image
loading = Label(root, image=loading_screen) # create the label with the "Loading" image
loading.place(x=65, y=0) # place the label for loading screen
root.after(1000, create_fd_label) # root.after(ms, func)
root.mainloop() # start the root window's mainloop
PS: 1) Почему вы используете .pack(...)
, а затем .place(...)
методы одновременно - первый (.pack(...)
здесь) будет игнорироваться Tkinter.
2) Лучше использовать Canvas
виджет для создания игры - в отличие от ярлыков он поддерживает прозрачность и проще в использовании.Например:
from tkinter import *
root = Tk() # create the root window
root.geometry("1300x899") # set the root window's size
canv = Canvas(root) # create the Canvas widget
canv.pack(fill=BOTH, expand=YES) # and pack it on the screen
loading_screen = PhotoImage(file="FroggerLoad.gif") # open the "Loading" image
canv.create_image((65, 0), image=loading_screen) # create it on the Canvas
root.after(1000, lambda: canv.create_text((500, 300),
font=("ComicSans", 100, "bold"),
text="Frogger")) # root.after(ms, func)
root.mainloop() # start the root window's mainloop
Примечание: вам может потребоваться изменить координаты с помощью Canvas
.