Поскольку @SapphireSun спросил в комментарии о другом способе, я хотел бы представить другой ответ, и это - рисование курсора вручную. Я предполагаю, что именно это @Mizipzor предлагает в своем ответе, так что, возможно, это всего лишь разработка.
Сначала скройте курсор мыши, затем каждый раз, когда обновляется рамка экрана, «вручную» раскрасьте курсор:
pygame.mouse.set_visible(False) # hide the cursor
# Image for "manual" cursor
MANUAL_CURSOR = pygame.image.load('finger_cursor_16.png').convert_alpha()
# In main loop ~
...
# paint cursor at mouse the current location
screen.blit( MANUAL_CURSOR, ( pygame.mouse.get_pos() ) )
Этот метод позволяет программе PyGame иметь любой вид растрового изображения для курсора. Может быть некоторая хитрость, связанная с получением горячей точки «щелчка» в нужном месте, но этого можно достичь, установив прозрачный курсор с горячей точкой в позиции, соответствующей пользовательскому растровому изображению. Подробнее см. Руководство .
# transparent 8x8 cursor with the hot-spot at (4,4)
pygame.mouse.set_cursor((8,8),(4,4),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
Я не уверен, что чувствую к разноцветным курсорам, но, по крайней мере, это возможно.