background na tela. O background tem o mesmo tamanho setado por nos no passo 5)window.blit(ship, (x_position,y_position)) # Desenha a navepygame.display.flip() # Recarrega a janela9. Pronto, agora o que precisamos e de um laco infinito recebendo todos os eventos do gamer (aperta botao K, aperta botao SPACE, clica com o botao direito do mouse, etc...), e o pygame e bem eficiente nisso. Tudo que voce precisa fazer e:while True: events = pygame.event.get()O pygame.event.get() esta atribuinto a variavel events uma lista com os eventos que estao acontecendo. Entao, quando essa lista nao for vazia, alguem apertou ou moveu algo. Vamos tratar esse evento! for event in events: if event.type == KEYDOWN and event.key == K_LEFT: x_position -= step window.blit(background, (0,0)) window.blit(ship, (x_position,y_position)) pygame.display.flip() if event.type == KEYDOWN and event.key == K_RIGHT: x_position += step window.blit(background, (0,0)) window.blit(ship, (x_position,y_position)) pygame.display.flip() if event.type == KEYDOWN and event.key == K_SPACE: shot_pos_x, shot_pos_y = x_position, y_position while shot_pos_y > 0: window.blit(background, (0,0)) window.blit(ship, (x_position,y_position)) window.blit(shot, (shot_pos_x,shot_pos_y)) shot_pos_y -= shotspeed pygame.display.flip() window.blit(background, (0,0)) window.blit(ship, (x_position,y_position)) pygame.display.flip() if event.type == QUIT: sys.exit(0)Calma, calma. Vou explicar tudinho. Esse for trata os eventos como falei acima, e se o tipo do evento for KEYDOWN (alguem pressionou uma tecla) e essa tecla for setinha-pra-esquerda (K_LEFT) nos alteramos a posicao da nave em cinco pixels pra esquerda (diminuimos o x_position com o step), apagamos tudo redesenhando o background por cima de tudo, desenhamos a nave novamente so que no novo lugar e damos um 'refresh' na tela, sacou? O mesmo com o K_RIGHT.Ja com o K_SPACE, que e quando o usuario apertar espaco, nos setamos a posicao do tiro que vai partir da nave (ou seja, tem que estar na mesma posicao da nave que e x_position e y_position) e fazemos um while dizendo que enquanto a posicao do tiro no eixo Y for maior que 0 (ou seja, enquanto o tiro nao encostar na aresta superior da tela) o jogo precisa desenhar o background, desenhar a nave, desenhar o tiro e diminuir 1 pixel da posicao atual do tiro, que e pra fazer ele subir. Dessa forma, uma hora o tiro vai chegar no topo da tela e sair fora do while. Ai o joguinho redesenha o background e a nave so e da uma atualizada na tela pra que o tiro suma.O ultimo evento e so pra o X do canto superior direito da tela funcionar.Algumas Observacoes: Existem varias coisas nesse codigo que precisam ser melhoradas. Esse while do tiro precisa ser refeito porque enquanto o tiro viaja pela telinha nossa nave fica presa, esperando o tiro sumir da tela para que retomemos o controle dela. Isso e um erro.Outra coisa que preciso aprender e a atualizacao (flip) da tela. Existe um outro metodo mais eficiente que e o update(), e usamos ele quando queremos atualizar apenas partes da tela. Essa atualizacao por partes e chamada de dirty-rect, e ela desenha apenas retangulos de background onde aconteceram movimentos.No geral e mais ou menos isso. O codigo completo esta aqui e se voce quiser ver esse codigo funcionando pegue as imagens aqui. Nao