pygame.time.Clock() 函数在 Ubuntu 18.04 上不起作用

pygame.time.Clock() function not working on Ubuntu18.04

我使用的是ubuntu18.04。我已经安装了 pygame 模块来播放歌曲。但是 time.Clock() 函数不起作用。在 运行 程序后显示以下错误:AttributeError: 'function' object has no attribute 'Clock'.

代码如下:

def playSong(filename):
    mixer.init()
    mixer.music.load('/home/mjiabir/Music/rangamati songs/Roar.mp3')
    mixer.music.play()
    while mixer.music.get_busy:
        time.Clock.tick(10)
    mixer.music.stop()

看起来 Linux 不支持此模块。我现在该怎么办?

我想你想使用 pygame.time.Clock().tick(10)

查找包或子包模块的一种方法是使用dir()。例如:

# in a python interactive shell

import time
dir(time)
# output => ['CLOCK_BOOTTIME', 'CLOCK_MONOTONIC', 'CLOCK_MONOTONIC_RAW', 'CLOCK_PROCESS_CPUTIME_ID', 'CLOCK_REALTIME', 'CLOCK_THREAD_CPUTIME_ID', '_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'clock_getres', 'clock_gettime', 'clock_gettime_ns', 'clock_settime', 'clock_settime_ns', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'pthread_getcpuclockid', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname', 'tzset']

import pygame
dir(pygame.time)
# output => ['Clock', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'delay', 'get_ticks', 'set_timer', 'wait'] 

尽管您可以使用 pygame.time.Clock().tick(),但我建议通过 clock = pygame.time.Clock()clock.tick(10) 构造一个 Clock 对象。通常,最好利用 Python 的面向对象特性,而不是直接调用构造方法。