哪种是在pygame中绘制对象的最佳方法?
1)在表面上绘制,然后将其翻转到显示器中。
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.surf = pygame.Surface((75, 25))
self.surf.fill((255, 255, 255))
self.rect = self.surf.get_rect()
player = Player()
screen.blit(player.surf, player.rect)
2)直接画在显示器上。
pygame.draw.rect(screen, color, (x,y,width,height), thickness)
两种方法有什么区别,哪种是首选的,为什么?
还有哪一个更快?
如果要pygame.sprite.Group
使用pygame.sprite.Sprite
对象,则应优先使用对象,因为可以将对象添加到组中。
使用组时,可以使用.update()
来更新组中的所有Sprite,并使用draw()
方法绘制组中的所有Sprite。
但请注意,使用对象的and属性的draw()
方法,因此您必须重命名为。例如:pygame.sprite.Group
.rect
.image
.surf
.image
class Player(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.image = pygame.Surface((75, 25))
self.image.fill((255, 255, 255))
self.rect = self.image.get_rect(center = (x, y))
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_d]
self.rect.x += 1
# [...]
screen = pygame.display.set_mode((width, height))
# [...]
my_group = pygame.sprite.Group()
my_group.add(Player(player_x, player_y))
while True:
# [...]
my_group.update()
# [...]
my_group.draw(screen)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句