2014-01-21 135 views
1

所以,我有一个pygame.circle,我想移动。我让它移动等,但它只是复制图像,并没有删除以前。我理解“Blit”的概念并理解它复制了一个像素数组。所以我想我会尝试重绘我的整场比赛,这是我有:重绘图像无法正常工作?

  if event.type == pygame.KEYDOWN and event.key == pygame.K_a: 
       diceRoll = random.randint(1, 4) 
       diceRollLabel = myFont.render(str(diceRoll), 1, black) 
       window.blit(diceRollLabel, (750, 40)) 
       window.fill(black) 
       game() 

       count1 = pygame.draw.circle(window, (black),(150, countY - 72 * diceRoll), 25, 0) 
       game = False 
       game2 = True 
       print("Test") 

       player1Text = myFont.render(("Player twos turn!"), 1, black) 
       window.blit(player1Text, (650, 750)) 
       pygame.display.update() 
       break 

当所谓的“游戏()”,它应该记得,包含了所有的游戏画面的功能,所以质地等,但出于某种原因,它没有做任何事情?屏幕变黑了?

它说“布尔对象不可调用”但我的函数不是布尔值?

回答

0

你已经设置的游戏为布尔

game = False 

所以,当你打电话“游戏()”这是一样的“伪()”,这是你的错误的原因。

在blice diceRollLabel(黑色)之后,您也填充屏幕黑色,然后您似乎在黑色屏幕上绘制黑色圆圈。

完整代码将对您有所帮助。

+0

我把它固定在一定程度上,但现在当它调用该函数它只显示黑色 – user3216654

+0

我不知道你做了什么样的变化,但我建议,如果你的背景是黑色的,则你不使用黑色的文字,圆形。如果我让它们变白,那么它们会显示在我的屏幕上。 – elParaguayo

1

在循环开始时填充屏幕。

def draw(): 
    screen.fill(Color('black')) 
    # draw 
    pygame.display.flip()