我的程序分爲兩個函數。一旦獲得一堆彈跳球的數據,位置和顏色。另一個吸引這些球並使它們移動。我想要做的是讓一個球每五秒鐘出現一次。爲了做到這一點,我必須在data()函數中使用time.sleep(),但不要使用move()函數。由於這兩者緊密相連,我無法弄清楚如何做到這一點。我認爲唯一的辦法是完全機會我的程序的邏輯(我不想這麼做),或者使移動()函數不知何故對time.sleep()沒有影響。有任何想法嗎?如何使某些東西不受time.sleep()python
的getData()函數:移動的
def getData(numobjects):
for x in range(int(numobjects)):
xCoordinate.append(random.randint(-300, 300))
yCoordinate.append(random.randint(-300, 300))
speed1.append(random.randrange(-8,8))
speed2.append(random.randrange(-8,8))
for i in range(len(speed1)):
for char in range(len(speed2)):
if i == 0 or char == 0:
i = random.randint(-8,8)
char = random.randint(-8,8)
color.append([random.random(), random.random(), random.random()])
部分()函數:
# Clearing the canvas and hiding the turtle for the next iteration of moving()
turtle.clear()
turtle.hideturtle()
# Drawing all of the circles
for i in range(len(xCoordinate)):
turtle.penup()
turtle.goto(xCoordinate[i], yCoordinate[i])
turtle.pendown()
turtle.fillcolor(color[i][0], color[i][1], color[i][2])
turtle.begin_fill()
turtle.circle(15)
turtle.end_fill()
xCoordinate[i] += speed1[i]
yCoordinate[i] += speed2[i]
# Bouncing off edges of the screen
if xCoordinate[i] > 300:
xCoordinate[i] = 299
speed1[i] *= -1
if xCoordinate[i] < -300:
xCoordinate[i] = -299
speed1[i] *= -1
if yCoordinate[i] > 300:
yCoordinate[i] = 299
speed2[i] *= -1
if yCoordinate[i] < -300:
yCoordinate[i] = -299
speed2[i] *= -1
# updating turtle and running the moving() function every ten milliseconds
turtle.update()
turtle.ontimer(moving, 10)
你可以嘗試使用'threading'庫來使它們作爲不同的線程連續運行。 –
我很抱歉。我很新的堆棧溢出,所以我沒有意識到我需要發佈我的代碼。但是,這兩個函數的代碼特別是大約200行。我應該全部發布嗎? –
你的線程已被擱置,因爲它實際上並沒有主題,所以用代碼示例和一些更多的描述來重寫你的原始文章。您應該只發布代碼的相關部分。 –