如何在pygam中对按键事件进行blit和映像

2024-09-29 23:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在按下事件K峎空格时将图像快速传送到屏幕上。 然而,当我按下空格键时,什么也没发生。我尝试过移动屏幕更新或翻转的地方,但我遇到了困难。在

谢谢你的帮助。在

def Play():

background  = pygame.image.load(bifPlay).convert() 
char = pygame.image.load(mif).convert_alpha()
bullet = pygame.image.load(bulletLoad).convert()
zombie = pygame.image.load(zombieLoad).convert_alpha()
#converting images needed so pygame can use them
x,y = 115,350
movex, movey = 0,0
zombieX = 1100
zombieY = random.randint(0,675)
bulletX = x+90
bulletY = y+37.5
clock = pygame.time.Clock()
zombieSpeed = 100
bulletSpeed = 200
while True:

    milli = clock.tick()
    seconds = milli/1000.
    zomMovement = seconds*zombieSpeed
    bulletMovement = seconds*bulletSpeed
    zombieX-=zomMovement
    bulletX+=bulletMovement
    x += movex
    y += movey
    screen.blit(background,(0,0))
    screen.blit(char,(x,y))
    screen.blit(zombie,(zombieX,zombieY))
    spacePressed = pygame.key.get_pressed()

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
#code above allows the user to exit - while program is running if event is exit
#allows user to exit program.
        if event.type == KEYDOWN:
            if event.key == K_UP:
                movey =-1
            elif event.key == K_DOWN:
                movey =+1
            elif event.key == K_SPACE:
                screen.blit(bullet,(bulletX,bulletY))
        if event.type == KEYUP:
            if event.key == K_UP:
                movey =0
            elif event.key == K_DOWN:
                movey =0

    if y == 675: 
        y -= 1
    if y == 0: 
        y +=1
    pygame.display.update()

Tags: keyimageeventconvertiftypeexitload
2条回答

您的图像正在显示,但只显示一次,然后被背景冲走。慢下来你的循环使用时钟滴答声()并查看是否正在显示。在

既然按了空格键,就可以这样绘制子弹:

if spacePressed[K_SPACE]:
    screen.blit(bullet, (bulletx, bullety))

按空格键也可以使用任何键。在

相关问题 更多 >

    热门问题