【发布时间】:2018-07-17 04:59:06
【问题描述】:
我正在用 python 制作我的前几款游戏,我选择了 Snake 和 Egg Catcher 作为我的项目。我的问题是,当我执行代码时,图形窗口只会弹出一秒钟。我假设当我的代码到达末尾时它会自动关闭窗口,但我希望这个窗口保留给我的游戏。
我可以添加什么来确保我的图形窗口持续存在以便我可以玩游戏?
非常感谢!
import random
import turtle as t
#Creating the snake
caterpillar = t.Turtle()
caterpillar.shape('square')
caterpillar.color('red')
caterpillar.speed(0)
caterpillar.penup()
caterpillar.hideturtle()
# Creating the powerup
leaf = t.Turtle()
leaf_shape = ((0,0), (14,2), (18,6), (20,20), (6,18), (2,14))
t.register_shape('leaf', leaf_shape)
leaf.shape('leaf')
leaf.color('green')
leaf.penup()
leaf.hideturtle()
leaf.speed(0)
# Settling our score
game_started = False
text_turtle = t.Turtle()
text_turtle.write('Press SPACE to start', align = 'center', font ('Arial',16,'bold'))
text_turtle.hideturtle()
score_turtle - t.Turtle()
score_turtle.hideturtle()
score_turtle.speed(0)
# Game functions
def outside_window():
pass
def game_over():
pass
def display_score(current_score):
pass
def place_leaf():
pass
def start_game():
global game_started
if game_started:
return
game_started = true
score = 0
text_turtle.clear()
caterpillar_speed = 2
caterpillar_length = 3
caterpillar.shapesize(1, caterpillar_length, 1)
caterpillar.showturtle()
display_score(score)
place_leaf()
# Game Drivers
while True:
caterpillar.forward(caterpillar_speed)
if caterpillar.distance(leaf) < 20:
place_leaf()
caterpillar_length = caterpillar_length + 1
caterpillar_speed = caterpillar_speed + 1
score = score + 10
display_score(score)
if outside_window():
game_over()
break
t.onkey(start_game, 'space')
t.listen()
t.mainloop()
【问题讨论】:
-
是turtle还是pygame?
-
这是一只乌龟 - 如有错误请见谅!