下のコードでは、センターを追加し、その前にself.rect(これは学習とPygameの動作を理解するためのものです)の左上の属性を追加します。一番上の属性を追加すると、上が上書きされるように見えますが、左に中央が来るとブロックのx位置が変わります。左がセンターによって上書きされない理由を説明することはできますか?あなたがget_rect
関数を呼び出すときに使用Pygame RectセンターはRectの左を上書きできません
import pygame
pygame.init()
screen=pygame.display.set_mode((500,500))
class Block(pygame.sprite.Sprite):
def __init__(self):
super(Block, self).__init__()
self.image=pygame.Surface((50,50))
self.image.fill((0,0,200))
self.rect=self.image.get_rect(top=400,center=(0,0))
#this will obviously be overwritten by center, but not the following, why?
#self.rect=self.image.get_rect(left=400,center=(0,0))
b=Block()
blockGrp=pygame.sprite.Group()
blockGrp.add(b)
print blockGrp
while 1:
pygame.time.wait(50)
for e in pygame.event.get():
if e.type==pygame.QUIT:
pygame.quit()
blockGrp.draw(screen)
pygame.display.flip()