Python 游戏-射击子弹

Python 游戏-射击子弹,python,python-3.x,pygame,2d,Python,Python 3.x,Pygame,2d,我的代码有问题,我开始做2D坦克游戏,问题是从坦克位置射击子弹。。这是我的代码,看看吧,我试着在3-4个小时内弄明白。。我希望有人知道怎么做,谢谢!:) 顺便说一句,很抱歉这段令人毛骨悚然的代码,我是Pygame的新手:) 导入pygame pygame.init() #---窗口---- 显示宽度=1000 显示高度=600 gameDisplay=pygame.display.set_模式((显示宽度、显示高度)) pygame.display.set_标题('powpypow') 黑色=(

我的代码有问题,我开始做2D坦克游戏,问题是从坦克位置射击子弹。。这是我的代码,看看吧,我试着在3-4个小时内弄明白。。我希望有人知道怎么做,谢谢!:)

顺便说一句,很抱歉这段令人毛骨悚然的代码,我是Pygame的新手:)

导入pygame
pygame.init()
#---窗口----
显示宽度=1000
显示高度=600
gameDisplay=pygame.display.set_模式((显示宽度、显示高度))
pygame.display.set_标题('powpypow')
黑色=(0,0,0)
白色=(255255)
红色=(255,0,0)
background=pygame.image.load('background.png')
tank1=pygame.image.load('tank1.png')
tankfire=pygame.image.load('tankfire.png')
shot=pygame.image.load('shot.png')
clock=pygame.time.clock()
def箱(x,y):
游戏显示.blit(坦克1,(x,y))
x=(显示宽度*0.10)
y=(显示高度*0.58)
x_变化=0
油箱宽度=73
#---游戏循环----
gameExit=False
不退出游戏时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
gameExit=True
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_a:
x_变化=-10
elif event.key==pygame.K\u d:
x_变化=10
elif event.key==pygame.K_空间:
tank1=pygame.image.load('tankfire.png')
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_a或event.key==pygame.K_d或event.key==pygame.K_空间:
tank1=pygame.image.load('tank1.png')
x_变化=0
如果x>=显示宽度-油箱宽度或x显示宽度/2:
x=0
x+=x_变化
游戏显示.blit(背景,(0,0))
油箱(x,y)
pygame.display.update()
时钟滴答(60)
pygame.quit()
退出

如果要渲染项目符号,则需要在它们在屏幕上移动时跟踪它们。这将需要某种类型的列表或项目符号组,您可以一次遍历并绘制一个项目符号

我建议您看一看教程,以帮助您切换到在组中使用精灵,而不是将每个图像单独显示在屏幕上。您会发现跟踪每个对象并调整其位置要容易得多


Pygame网站上的黑猩猩教程非常好:

你有什么问题?子弹没有出现吗?它们是否没有以正确的方向、正确的速度等移动?它们根本没有出现,因为我还没有任何功能。。。。我想不出怎么做那件事。。
import pygame

pygame.init()

#---WINDOW----
display_width = 1000
display_height = 600

gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption('powpypow')

black = (0,0,0)
white = (255,255,255)
red = (255,0,0)




background = pygame.image.load('background.png')
tank1 = pygame.image.load('tank1.png')
tankfire = pygame.image.load('tankfire.png')
shot = pygame.image.load('shot.png')

clock = pygame.time.Clock()

def tank(x,y):
    gameDisplay.blit(tank1, (x,y))

x = (display_width * 0.10) 
y = (display_height * 0.58)

x_change = 0

tank_width = 73 


#---GAME LOOP----

gameExit = False


while not gameExit:

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

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                x_change = -10
            elif event.key == pygame.K_d:
                x_change = 10    
            elif event.key == pygame.K_SPACE:
                tank1 = pygame.image.load('tankfire.png')


        if event.type == pygame.KEYUP:
            if event.key == pygame.K_a or event.key == pygame.K_d or event.key == pygame.K_SPACE:
                tank1 = pygame.image.load('tank1.png')
                x_change = 0 

    if x >= display_width - tank_width or x <= 0:
        x = 0
    if x > display_width / 2:
        x = 0 

    x += x_change
    gameDisplay.blit(background, (0,0))
    tank(x,y)

    pygame.display.update()
    clock.tick(60)

pygame.quit()
quit()