如何从 pygame 中的列表中绘制矩形
How to draw rectangles from a list in pygame
它说 rect argument is invalid
但是当我给出没有变量的同一个矩形时它起作用了,这是负责它的代码部分
class Background:
def __init__(self, background):
self.background = background
self.endpoint = 5590
self.bx = 0
self.scrolling_right = False
self.scrolling_right = True
self.obstacleses = []
def obstacles(self):
self.obstacleses = pygame.Rect(300, 300, 20, 60)
print(self.obstacleses)
def surface(self):
screen.blit(self.background, (self.bx, 0))
screen.blit(templar1.image, templar1.pos)
screen.blit(Rogue.image, Rogue.pos)
pygame.draw.rect(screen, (255, 0, 0), self.obstacleses)
pygame.display.update()
我也在 pygame.draw.rect
中尝试了 self.obstacleses(0)
,但后来我得到了 list object is not callable
。
您必须循环绘制矩形:
for obstacle in self.obstacleses:
pygame.draw.rect(screen, (255, 0, 0), obstacle)
import pygame
...
screen = pygame.display.set_mode((WIDTH, HEIGHT))
RECTS = []
RECTS.append( pygame.Rect(10, 10, 60, 60) )
# Use this in mainloop
for rect in RECTS:
pygame.draw.rect(screen, GREEN, rect)
它说 rect argument is invalid
但是当我给出没有变量的同一个矩形时它起作用了,这是负责它的代码部分
class Background:
def __init__(self, background):
self.background = background
self.endpoint = 5590
self.bx = 0
self.scrolling_right = False
self.scrolling_right = True
self.obstacleses = []
def obstacles(self):
self.obstacleses = pygame.Rect(300, 300, 20, 60)
print(self.obstacleses)
def surface(self):
screen.blit(self.background, (self.bx, 0))
screen.blit(templar1.image, templar1.pos)
screen.blit(Rogue.image, Rogue.pos)
pygame.draw.rect(screen, (255, 0, 0), self.obstacleses)
pygame.display.update()
我也在 pygame.draw.rect
中尝试了 self.obstacleses(0)
,但后来我得到了 list object is not callable
。
您必须循环绘制矩形:
for obstacle in self.obstacleses:
pygame.draw.rect(screen, (255, 0, 0), obstacle)
import pygame
...
screen = pygame.display.set_mode((WIDTH, HEIGHT))
RECTS = []
RECTS.append( pygame.Rect(10, 10, 60, 60) )
# Use this in mainloop
for rect in RECTS:
pygame.draw.rect(screen, GREEN, rect)