如何获取没有图像的矩形属性
how to get rect attribute with no image
我正在为盒子创建一个 class。当我的主要精灵碰撞时将重置其位置。这些框是在屏幕上绘制的矩形,因此没有 self.image.get_rect()
来自的图像。我怎样才能给 boxcollisions 一个 rect 属性?
class boxcollisions(pygame.sprite.Sprite):
def __init__(self, x, y):
self.y=y
self.x=x
self.rect= self.image.get_rect()
self.rect.left = self.x
self.rect.top = self.y
self.rect.width=16
self.rect.height=16
def draw(self,x,y):
pygame.draw.rect(screen, (0, 128, 255), pygame.Rect(x, y, 15, 15))
您可以给 class 一个 self.image
属性或创建 pygame.Rect
class 的一个实例。 (我认为 Box
更适合 class。)
pygame.sprite.Sprite
s 需要一个 image
如果你想将它们与精灵组一起使用,所以我推荐这个变体:
class Box(pygame.sprite.Sprite):
def __init__(self, x, y):
self.y = y
self.x = x
self.image = pygame.Surface((15, 15))
self.image.fill((0, 128, 255))
self.rect = self.image.get_rect()
self.rect.left = self.x
self.rect.top = self.y
def draw(self, screen):
screen.blit(self.image, self.rect)
这是矩形变体:
class Box(pygame.sprite.Sprite):
def __init__(self, x, y):
self.y = y
self.x = x
self.rect = pygame.Rect(self.x, self.y, 15, 15)
self.color = (0, 128, 255)
def draw(self, screen):
pygame.draw.rect(screen, self.color, self.rect)
我正在为盒子创建一个 class。当我的主要精灵碰撞时将重置其位置。这些框是在屏幕上绘制的矩形,因此没有 self.image.get_rect()
来自的图像。我怎样才能给 boxcollisions 一个 rect 属性?
class boxcollisions(pygame.sprite.Sprite):
def __init__(self, x, y):
self.y=y
self.x=x
self.rect= self.image.get_rect()
self.rect.left = self.x
self.rect.top = self.y
self.rect.width=16
self.rect.height=16
def draw(self,x,y):
pygame.draw.rect(screen, (0, 128, 255), pygame.Rect(x, y, 15, 15))
您可以给 class 一个 self.image
属性或创建 pygame.Rect
class 的一个实例。 (我认为 Box
更适合 class。)
pygame.sprite.Sprite
s 需要一个 image
如果你想将它们与精灵组一起使用,所以我推荐这个变体:
class Box(pygame.sprite.Sprite):
def __init__(self, x, y):
self.y = y
self.x = x
self.image = pygame.Surface((15, 15))
self.image.fill((0, 128, 255))
self.rect = self.image.get_rect()
self.rect.left = self.x
self.rect.top = self.y
def draw(self, screen):
screen.blit(self.image, self.rect)
这是矩形变体:
class Box(pygame.sprite.Sprite):
def __init__(self, x, y):
self.y = y
self.x = x
self.rect = pygame.Rect(self.x, self.y, 15, 15)
self.color = (0, 128, 255)
def draw(self, screen):
pygame.draw.rect(screen, self.color, self.rect)