2016-05-29 57 views
0

我正在为学校做一个python编码项目,我需要编写一个pygame来从特定的位置发射子弹。Pygame Bullets(python 3.2.5)

我使用此代码试过,

if (event.type == pygame.KEYDOWN):  
     if (event.key == pygame.K_SPACE):  
      screen.blit(projectile,(projectilex,projectiley)) 

弹丸的x坐标等于玩家的x坐标,它从拍摄。所以像:

projectilex = playerx 

它只出现在屏幕上1秒然后消失。我需要从玩家的x开始,并将它的值增加到y,直到它达到屏幕的顶部,然后消失。任何帮助?

注:我必须使用python 3.2.5,我无法升级到更新的版本。

回答

1

screen.blit只显示单帧持续时间的内容。你需要画出每一帧的子弹。使用单独的变量来跟踪项目符号的X和Y位置以及是否显示项目符号。例如,

if (event.type == pygame.KEYDOWN):  
    if (event.key == pygame.K_SPACE):  
     show_projectile = True 
     projectile_x = player_x 
     projectile_y = player_y 
# ... 
if show_projectile: 
    screen.blit(projectile, (projectile_x, projectile_y)) 
0

尝试在你的代码中插入这样的:

pygame.key.set_repeat (1, 50) 

这允许代码repeate KEY_DOWN检查:1 =延迟,50 =时间重复

所以:

pygame.key.set_repeat (1, 50) 

if (event.type == pygame.KEYDOWN):  
     if (event.key == pygame.K_SPACE):  
      screen.blit(projectile,(projectilex,projectiley))