【问题标题】:How to change a variable some time after the function call? [duplicate]如何在函数调用后的某个时间更改变量? [复制]
【发布时间】:2021-05-18 20:15:15
【问题描述】:

我试图在单击按钮后的某个时间阻止鼠标,所以我创建了一个函数:

import pygame
import game_cache
import time

def set_mouse_blocked(boolean, timer=False):
    if boolean:
        game_cache.is_mouse_active = False

        if timer:
            ...

    else:
        game_cache.is_mouse_active = True

如何在没有循环的情况下完成这个功能?

附:没有机会使用循环,因为这个函数在循环中调用

【问题讨论】:

  • 我在主脚本中使用了 pygame 模块——这个文件只是所有项目的一部分。 timer 参数是以秒为单位的阻塞时间

标签: python python-3.x time pygame


【解决方案1】:

假设您有一个主循环函数,您可以在鼠标被阻止的那一刻创建一个时间戳,并检查该时间戳过去多长时间:

import time

def init():
    game_cache.is_mouse_active = True
    game_cache.last_blocked = 0
    game_cache.mouse_block_timer = 0

def set_mouse_blocked(timeout = 0):
    game_cache.is_mouse_active = False
    game_cache.last_blocked = time.time()
    game_cache.mouse_block_timer = timeout

def main_loop():
    if game_cache.mouse_block_timer:
        if time.time() - game_cache.last_blocked > game_cache.mouse_block_timer:
            game_cache.is_mouse_active = True
            game_cache.mouse_block_timer = 0

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2019-06-15
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    相关资源
    最近更新 更多