好的,我正在爲這個學校的項目工作。我應該製作一個太空侵略者類型的遊戲。我完成了使我的船移動和射擊。現在是問題所在,當我嘗試多火時,它會清除之前被解僱的子彈並且會觸發一個新的子彈,而這根本不是一個好站點。我如何才能真正發射多個鏡頭?我怎樣才能讓我的船發射多槍?
while (running == 1):
screen.fill(white)
for event in pygame.event.get():
if (event.type == pygame.QUIT):
running = 0
elif (event.type == pygame.KEYDOWN):
if (event.key == pygame.K_d):
dir = "R"
move = True
elif (event.key == pygame.K_a):
dir = "L"
move = True
elif (event.key == pygame.K_s):
dir = "D"
move = True
elif (event.key == pygame.K_w):
dir = "U"
move = True
elif (event.key == pygame.K_ESCAPE):
sys.exit(0)
elif (event.key == pygame.K_SPACE):
shot=True
xbul=xgun + 18
ybul=ygun
#if key[K_SPACE]:
#shot = True
if (event.type == pygame.KEYUP):
move = False
#OBJECT'S MOVEMENTS
if ((dir == "R" and xgun<460) and (move == True)):
xgun = xgun + 5
pygame.event.wait
elif ((dir == "L" and xgun>0) and (move == True)):
xgun = xgun - 5
pygame.event.wait
elif ((dir == "D" and ygun<660) and (move == True)):
ygun = ygun + 5
pygame.event.wait
elif ((dir == "U" and ygun>0) and (move == True)):
ygun = ygun - 5
screen.blit(gun, (xgun,ygun))
#PROJECTILE MOTION
#key = pygame.key.get_pressed()
if shot == True:
ybul = ybul - 10
screen.blit(bullet, (xbul, ybul))
if xbul>640:
shot=False
pygame.display.flip()
time.sleep(0.012)
你必須第一行和第二行之間的縮進錯誤... – mgilson
您需要保留屏幕項目符號的['list'](http://docs.python.org/3.3/tutorial/introduction.html#lists),並且移動bl它們全部在重畫期間等等。 – millimoose
或Sprite的精靈組 – ninMonkey