我正在PyCharm中编写一个小型Python游戏。我正在使用Python版本3.4的Macbook上执行此操作。 游戏打开一个Tkinter窗口并添加一些东西。 但是,在运行游戏时,它会非常简短地显示并立即关闭。Python程序在PyCharm中运行后,Tkinter窗口自动关闭
我在Stackoverflow上发现了一些提示,在游戏结束时添加输入('按下以关闭窗口')。事实上,这可以确保窗口不会立即关闭,但对于游戏来说并不实用。在游戏中,用户需要使用他的箭头键进行游戏。因此,在这种情况下添加输入(...)是没有用的。我怎样才能防止窗口自动关闭?谢谢!
代码如下:
from tkinter import *
# Scherm maken
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title('Bellenschieter')
c = Canvas(window,width=WIDTH, height=HEIGHT, bg='darkblue')
c.pack()
# Duikboot maken
ship_id = c.create_polygon(5,5,5,25,30,15,fill='red')
ship_id2 = c.create_oval(0,0,30,30,outline='red')
SHIP_R = 15
MID_X = WIDTH/2
MID_Y = HEIGHT/2
c.move(ship_id, MID_X, MID_Y)
c.move(ship_id2, MID_X, MID_Y)
# Duikboot besturen
SHIP_SPD = 10
def move_ship(event):
if event.keysym == 'Up':
c.move(ship_id, 0, -SHIP_SPD)
c.move(ship_id2, 0, -SHIP_SPD)
elif event.keysym == 'Down':
c.move(ship_id, 0, SHIP_SPD)
c.move(ship_id2, 0, SHIP_SPD)
elif event.keysym == 'Left':
c.move(ship_id, -SHIP_SPD, 0)
c.move(ship_id2, -SHIP_SPD, 0)
elif event.keysym == 'Right':
c.move(ship_id, SHIP_SPD, 0)
c.move(ship_id2, SHIP_SPD, 0)
c.bind_all('<Key>', move_ship)
window.update()
input('Press <Enter> to end the program')
看起来像你upvote两次;实际上没有upvote;) – falsetru