python倒计时代码turtle,Python乌龟:开始倒计时得到斯图
我正在做一個躲避游戲,在這個游戲中,烏龜(形狀像烏龜)必須避開其他海龜(形狀像鱷魚)。我得到了游戲工作,但正在嘗試添加一個倒計時游戲開始前,去3,2,1,去!在
我的想法是,自從倒數(shù)計時后,我的數(shù)字變?yōu)?,2,1,然后走!,我可以讓它在游戲的其余部分之前出現(xiàn),方法是讓所有其他內(nèi)容都依賴于倒數(shù)計時的值“GO!”。在
然而,現(xiàn)在,當(dāng)我啟動程序時,它會被卡在3,更新間隔之后會重新開始,而不是繼續(xù)執(zhí)行2、1和GO!所以比賽不能開始。在
我見過很多關(guān)于堆棧溢出的問題,這些問題都與運行計時器和與游戲并發(fā)的東西有關(guān),但我需要在游戲開始之前發(fā)生。在import turtle
import random
import pygame
window_height = 600
window_width = 600
update_interval = 25
countdown_number = 3
river_width = 400
minimum_river_width = 200
border_height = 600
river_width_update = 0.5
safe_distance_from_border = border_height / 2 + 3
number_of_enemies = 10
enemies = []
enemy_speeds = []
enemy_width = 100
enemy_height = 40
enemy_speed_min, enemy_speed_max = 10, 20
safe_distance_from_enemy = 15
def startgame():
global countdown_number
if countdown_number >= 1:
turtle.home()
turtle.left(270)
turtle.clear()
turtle.speed(0)
for _ in range(0,100,5):
turtle.forward(1)
turtle.color("grey"+str(_))
turtle.write(countdown_number, align="center", font=("Arial", 200, "normal"))
if countdown_number == 0:
countdown_number = "GO!"
turtle.home()
turtle.left(270)
turtle.clear()
turtle.speed(0)
for _ in range(0,100,5):
turtle.forward(1)
turtle.color("grey"+str(_))
turtle.write(countdown_number, align="center", font=("Arial", 200, "normal"))
turtle.clear()
#print(number)
def gameover(msg):
print(msg) # Probably comment this out later
turtle.home()
turtle.write(msg, align="center", font=("Arial", 24, "normal"))
def moveplayerturtle(x, y):
if x > -window_width / 2 and x < window_width / 2:
turtle.goto(x, y)
def updatescreen():
global river_width
global countdown_number
if countdown_number != "GO!":
startgame()
if countdown_number == "GO!":
if upper_river_border.ycor() >= window_height-200:
upper_river_border.sety(upper_river_border.ycor() - river_width_update)
if lower_river_border.ycor() <= -window_height+200:
lower_river_border.sety(lower_river_border.ycor() + river_width_update)
if upper_river_border.ycor() - turtle.ycor() < safe_distance_from_border:
gameover("Game over!")
return
if turtle.ycor() - lower_river_border.ycor() < safe_distance_from_border:
gameover("Game over!")
return
for i in range(number_of_enemies):
enemies[i].forward(enemy_speeds[i])
if enemies[i].xcor() > (window_width+enemy_width)/2:
x = -(window_width+enemy_width)/2
y = int(turtle.ycor())
enemies[i].goto(x, y)
s=1
enemy_speeds[i]=int(random.randrange(10+s, 20+s))
if turtle.distance(enemies[i]) < safe_distance_from_enemy:
gameover("You lose!")
return
turtle.ontimer(updatescreen, update_interval)
turtle.update()
turtle.setup(window_width, window_height) # Set the window size
turtle.bgcolor("DarkBlue")
turtle.tracer(False)
upper_river_border = turtle.Turtle()
upper_river_border.up()
lower_river_border = turtle.Turtle()
lower_river_border.up()
upper_river_border.shape("square")
lower_river_border.shape("square")
upper_river_border.color("DarkOrange4")
lower_river_border.color("DarkOrange4")
upper_river_border.shapesize(30, 40)
lower_river_border.shapesize(30, 40)
upper_river_border.sety((border_height + river_width) / 2)
lower_river_border.sety(-(border_height + river_width) / 2)
turtle.addshape("crocodile.gif")
for _ in range(number_of_enemies):
enemy = turtle.Turtle()
turtle.addshape("crocodile.gif")
enemy.shape("crocodile.gif")
enemy.up()
x = -(window_width + enemy_width) / 2
y = random.randint(-(river_width-enemy_height)/2, (river_width-enemy_height)/2)
enemy.goto(x, y)
enemies.append(enemy)
enemy_speeds.append(random.randint(enemy_speed_min, enemy_speed_max))
turtle.shape("turtle")
turtle.left(180)
turtle.color("GreenYellow")
turtle.up()
turtle.ondrag(moveplayerturtle)
turtle.ontimer(updatescreen, update_interval)
turtle.done()
當(dāng)我把倒計時寫成自己的程序時,倒計時本身就可以很好地工作了,所以我想它一定是從倒計時序列過渡到游戲循環(huán)本身,這才是問題所在。在
任何幫助都將不勝感激。在
總結(jié)
以上是生活随笔為你收集整理的python倒计时代码turtle,Python乌龟:开始倒计时得到斯图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 倒计时适用于各种数据大屏
- 下一篇: 使用正则表达式判断合法的电话号码