在我的游戏中,我试图让它当你走进一个物体时,它会显示一个图像。我很确定每帧都会调用 pygame.display.update() ,否则游戏将完全静止。
但是,当我在碰撞时绘制我的新矩形时,它不会出现,除非我在绘制后放置另一个 pygame.display.update(rect) 。这意味着 update 一次被调用两次,在主游戏循环中和绘制矩形之后。由于多次更新调用,这会导致矩形(现在已绘制)闪烁。
我无法弄清楚为什么没有第二次更新调用就不会绘制它。
主游戏循环调用:
def events(self):
#game loop events
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.playing = False
self.running = False
def update(self):
self.all_sprites.update()
def main(self):
while self.playing:
self.events()
self.update()
self.draw()
self.running = False
def draw(self):
self.screen.fill(black)
self.all_sprites.draw(self.screen)
self.clock.tick(FPS)
pygame.display.update()
#create game instance
g= Game()
g.new()
while g.running:
#main gameloop
g.main()
pygame.quit()
sys.exit()
这是我在与我的对象发生碰撞后调用绘制矩形的时候:
def update(self):
self.hitbox.center = numpy.add(self.rect.center,(8,22))
self.interactionhitbox.center = numpy.add(self.rect.center, (8,16))
if(self.showPopup):
# Initialwzng Color
color = (255,0,0)
# Drawing Rectangle
rect = pygame.Rect((0,0,60,60))
pygame.display.update(rect) # WITHOUT THIS LINE IT DOES NOT GET DRAWN, WITH IT IT FLICKERS
pygame.draw.rect(self.game.screen, color, rect)
所以基本上使用第二个 pygame.display.update(rect) 调用它会出现但会闪烁,没有它它根本不会出现
如果这是一个不好的问题或格式不正确,我们将不胜感激任何帮助,我自 2017 年以来就没有来过这里!