Pygame 编译的游标字符串没有提供足够的数据

Pygame compiled cursor string not giving enough data

我正在尝试编译 pygame 提供的游标字符串并将游标设置到它。但是,字符串编译器仅返回必要的 4 个参数中的 2 个。

pygame.mouse.set_cursor(*pygame.cursors.broken_x)
cursor = pygame.cursors.compile(pygame.cursors.sizer_x_strings)

结果:

Traceback (most recent call last):
  File "main.py", line 17, in __init__
    pygame.mouse.set_cursor(*cursor)
TypeError: function takes exactly 4 arguments (2 given)

pygame.cursors.* 中的预制字符串不包含有关光标的任何元数据,仅包含原始字符串。为了有效地使用它们,您还必须提供光标字符串的大小(字符宽度和行高度)。 下面是一个使用该预制游标的示例:

import sys

import pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((640, 480))

cursor, mask = pygame.cursors.compile(pygame.cursors.sizer_x_strings, "X", ".")

cursor_sizer = ((24, 16), (7, 11), cursor, mask)
pygame.mouse.set_cursor(*cursor_sizer)

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    screen.fill((120, 120, 120))
    pygame.display.update()