python - 如何在不影响其余部分的情况下延迟程序的一部分?

标签 python loops time pygame delay

我有一个使用计分器的程序。该分数计数器最初为 100,并保持这种状态,直到超过某个阈值。阈值变量称为 shipy,我的分数称为 score

一旦 shipy 超过 400,我实现了每 0.1 秒从我的分数中减去 1 的东西,但这样做会导致我的整个程序运行速度变慢。

这是我的代码片段:

shipy = 0
score = 100

# some code here doing something, eg. counting shipy up

if shipy > 400:
    time.sleep(0.1)
    global score
    score-=1

# more code doing something else

有没有办法独立于其余代码运行该分数减法?

最佳答案

您需要使用不同的线程来计算分数。只需启动一个新线程来倒计时您的分数。

import threading
import time

def scoreCounter(): 
    while shipy > 400:
        time.sleep(0.1)
        global score
        score-=1

t1 = threading.Thread(target=scoreCounter) 

如果 shipy > 400,则只需在代码中的某个点调用 t1.start()

关于python - 如何在不影响其余部分的情况下延迟程序的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59412769/

相关文章:

pointers - 一个人怎么能用 F# 编写 Duff 的设备?

PHP如何确定foreach循环中的第一次和最后一次迭代?

javascript - 我应该如何更新时间?新日期或setInterval?

python - 在 Python (GAE) 中将字符串转换为日期时间对象?

python - 使用 CNN+LSTM 模型和 TimeDistributed 层包装器进行 Keras 时间序列预测

python - 如何正确组织包/模块依赖树?

python - 在不同的循环python中迭代四个列表

mysql - vb.net DateTimePicker 删除时间 12 :00:00 AM

python - 使用来自消费者类外部的 Django Channels 发送消息

python - 颜色图的非线性缩放以增强对比度