将鼠标光标更改为手 pygame
Change mouse cursor to hand pygame
在pygame中有没有办法将鼠标光标从箭头变为手形?我在 pygame 中制作了一个按钮,当鼠标悬停在它上面时它会改变颜色,但我希望光标变成一只手。他是我目前拥有的:
class Button(pygame.sprite.Sprite):
def __init__(self, width, height, centerx, centery, text):
"""Initialize the button"""
self.image = pygame.Surface((width, height))
self.image.fill(COLORS["light-blue"])
self.rect = self.image.get_rect()
self.rect.centerx = centerx
self.rect.centery = centery
self.font = pygame.font.Font('clear-sans.medium.ttf', self.rect.height-4)
self.text = self.font.render(text, True, COLORS["black"])
self.text_rect = self.text.get_rect()
self.clicked = False
def update(self):
"""Update the button"""
self.text_rect.center = self.rect.center
def draw(self, screen):
"""Draw the button on the screen"""
clicked = False
mouse_pos = pygame.mouse.get_pos()
if self.rect.collidepoint(mouse_pos):
self.image.fill(COLORS["blue"])
if pygame.mouse.get_pressed()[0] == 1 and self.clicked is False:
self.clicked = True
else:
self.image.fill(COLORS["light-blue"])
if pygame.mouse.get_pressed()[0] == 0:
self.clicked = False
screen.blit(self.image, self.rect)
screen.blit(self.text, self.text_rect)
return self.clicked
我知道如何更改光标图像,但我想知道 pygame 中是否有内置方法可以将光标更改为一只手,而无需为它制作新的精灵。
我想你可以在 pygame.cursors
中使用 pygame.SYSTEM_CURSOR_HAND
来完成这个。
在pygame中有没有办法将鼠标光标从箭头变为手形?我在 pygame 中制作了一个按钮,当鼠标悬停在它上面时它会改变颜色,但我希望光标变成一只手。他是我目前拥有的:
class Button(pygame.sprite.Sprite):
def __init__(self, width, height, centerx, centery, text):
"""Initialize the button"""
self.image = pygame.Surface((width, height))
self.image.fill(COLORS["light-blue"])
self.rect = self.image.get_rect()
self.rect.centerx = centerx
self.rect.centery = centery
self.font = pygame.font.Font('clear-sans.medium.ttf', self.rect.height-4)
self.text = self.font.render(text, True, COLORS["black"])
self.text_rect = self.text.get_rect()
self.clicked = False
def update(self):
"""Update the button"""
self.text_rect.center = self.rect.center
def draw(self, screen):
"""Draw the button on the screen"""
clicked = False
mouse_pos = pygame.mouse.get_pos()
if self.rect.collidepoint(mouse_pos):
self.image.fill(COLORS["blue"])
if pygame.mouse.get_pressed()[0] == 1 and self.clicked is False:
self.clicked = True
else:
self.image.fill(COLORS["light-blue"])
if pygame.mouse.get_pressed()[0] == 0:
self.clicked = False
screen.blit(self.image, self.rect)
screen.blit(self.text, self.text_rect)
return self.clicked
我知道如何更改光标图像,但我想知道 pygame 中是否有内置方法可以将光标更改为一只手,而无需为它制作新的精灵。
我想你可以在 pygame.cursors
中使用 pygame.SYSTEM_CURSOR_HAND
来完成这个。