2016-07-03 10 views
0

私のプログラムでは、私の十字キーを矢印キーを使って移動しようとしています。しかし、それは動くが、それ自身のレプリカの後ろに葉のようなものがある。私はそれの上に健康バーを移動しようとしています。これは私のコードです:なぜ私のオブジェクトはPygameで誤って動いていますか?

import pygame 
from pygame.locals import * 

pygame.init() 

black = (0,0,0) 
white = (255,255,255) 
red = (255,0,0) 
green = (0,255,0) 
blue = (0,0,255) 
yellow = (255,242,0) 
darkBlue = (0,0,128) 

size = winHeight,winWidth = (1350,668) 

pygame.key.set_repeat(50,50) 
x,y = 625,490 

towerHealth = 1450 
healthAdjusted = towerHealth/10 

screen = pygame.display.set_mode(size) 
pygame.display.set_caption("Stormtroopers") 
gameExit = False 

while not gameExit: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      gameExit = True 

     if event.type == KEYDOWN: 
      if event.key == K_UP: y -= 5 
      if event.key == K_DOWN: y += 5 
      if event.key == K_LEFT: x -= 5 
      if event.key == K_RIGHT: x += 5 

    tower = [ 
      pygame.draw.rect(screen,blue,(x,y,100,160)), 
      pygame.draw.rect(screen,darkBlue,(x,y,100,160),5), 
      pygame.draw.polygon(screen,blue,((x,y),(x + 50,y - 50),(x + 150,y - 50),(x + 100,y))), 
      pygame.draw.polygon(screen,darkBlue,((x,y),(x + 50,y - 50),(x + 150,y - 50),(x + 100,y)),5), 
      pygame.draw.polygon(screen,darkBlue,((x + 100,y),(x + 150,y - 50),(x + 150,y + 110),(x + 100,y + 160))) 
      ] 

    healthBar = [ 
       pygame.draw.rect(screen,white,(x,y - 80,150,15),5), 
       pygame.draw.rect(screen,red,(x + 3,y - 77,healthAdjusted,10)) 
       ] 

    if towerHealth <= 0: 
     gameExit = True 

    pygame.display.update() 

pygame.quit() 
quit() 

私を助けてください。

答えて

1

直方体の古い位置を消去する必要があります。そうしないと、2つのコピーが表示されます。 Pygameはすべてのアップデートで描画したものを自動的に消去するわけではありません。 Hereはチュートリアルです。あなたはまた、stackoverflowのthis related questionをチェックしたいと思うかもしれません。

+0

ありがとうございました! – Jetter126

関連する問題