🚀 Criando um Jogo de Flecha Python com Pygame ( vou melhorar e testar)
🚀 Criando um Jogo de Flecha Python com Pygame ( vou melhorar e testar)
Hoje eu vou mostrar como funciona o código do nosso jogo Space Shooter, desenvolvido em Python usando a biblioteca Pygame.
import pygame
import random
# Inicializando o pygame
pygame.init()
# Configurações da tela
tamanho_tela = (800, 600)
tela = pygame.display.set_mode(tamanho_tela)
pygame.display.set_caption("Space Shooter")
# Cores
BRANCO = (255, 255, 255)
PRETO = (0, 0, 0)
VERMELHO = (255, 0, 0)
# Carregar a imagem de fundo
fundo = pygame.image.load("céu.jpg") # Coloque o caminho da sua imagem de fundo
fundo = pygame.transform.scale(fundo, (800, 600)) # Ajuste para o tamanho da tela (800x600)
# Carregar sons
pygame.mixer.init() # Inicializa o mixer de som
som_disparo = pygame.mixer.Sound("sond/disparo.wav") # Som do disparo
som_colisao_inimigo = pygame.mixer.Sound("sond/bola colidindo com o bloco.mp3") # Som da colisão com inimigo
som_colisao_jogador = pygame.mixer.Sound("sond/colisao com jogador.wav") # Som da colisão com o jogador
# Classe da nave do jogador
class Nave:
def __init__(self):
self.imagem = pygame.image.load("arqueiro.png") # Coloque o caminho da sua imagem de nave
self.rect = self.imagem.get_rect()
self.rect.center = (400, 550) # Inicia no centro inferior da tela
self.velocidade = 30 # Velocidade de movimento da nave
def mover(self, esquerda, direita, cima, baixo):
if esquerda and self.rect.left > 0:
self.rect.x -= self.velocidade
if direita and self.rect.right < 800:
self.rect.x += self.velocidade
if cima and self.rect.top > 0:
self.rect.y -= self.velocidade
if baixo and self.rect.bottom < 600:
self.rect.y += self.velocidade
def desenhar(self):
tela.blit(self.imagem, self.rect)
# Classe da flecha (no lugar do míssil)
class Flecha:
def __init__(self, x, y):
self.imagem = pygame.image.load("flecha.png") # Coloque o caminho da imagem da flecha
self.imagem = pygame.transform.scale(self.imagem, (30, 100)) # Ajuste o tamanho da flecha
self.rect = self.imagem.get_rect()
self.rect.center = (x, y)
self.velocidade = 7
def mover(self):
self.rect.y -= self.velocidade # A flecha vai para cima (ajuste para movimento desejado)
def desenhar(self):
tela.blit(self.imagem, self.rect)
# Classe do inimigo
class Inimigo:
def __init__(self):
self.imagem = pygame.image.load("balão2.png") # Coloque o caminho da imagem da nave inimiga
self.rect = self.imagem.get_rect()
self.rect.center = (random.randint(50, 750), random.randint(-100, -50)) # Posiçã o aleatória no topo
self.velocidade = 2
def mover(self):
self.rect.y += self.velocidade
def desenhar(self):
tela.blit(self.imagem, self.rect)
# Função principal do jogo
def jogo():
# Criando objetos
jogador = Nave()
flechas = [] # Agora temos uma lista de flechas, ao invés de mísseis
inimigos = [Inimigo() for _ in range(5)]
# Variáveis de controle
clock = pygame.time.Clock()
pontos = 0
vidas = 3
fim_jogo = False
# Loop principal do jogo
while not fim_jogo:
tela.fill(PRETO)
# Desenhar o fundo
tela.blit(fundo, (0, 0)) # Coloca a imagem de fundo na tela
# Movimentos do jogador
esquerda = direita = cima = baixo = False
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
fim_jogo = True
if evento.type == pygame.KEYDOWN:
if evento.key == pygame.K_LEFT:
esquerda = True
if evento.key == pygame.K_RIGHT:
direita = True
if evento.key == pygame.K_UP:
cima = True
if evento.key == pygame.K_DOWN:
baixo = True
if evento.key == pygame.K_SPACE:
# Disparar a flecha
flechas.append(Flecha(jogador.rect.centerx, jogador.rect.top))
som_disparo.play() # Toca o som do disparo
# Mover a nave
jogador.mover(esquerda, direita, cima, baixo)
# Mover flechas
for flecha in flechas:
flecha.mover()
if flecha.rect.bottom < 0:
flechas.remove(flecha)
# Mover inimigos
for inimigo in inimigos:
inimigo.mover()
if inimigo.rect.top > 600:
inimigos.remove(inimigo)
inimigos.append(Inimigo())
# Verificar colisão com as flechas
for flecha in flechas:
if flecha.rect.colliderect(inimigo.rect):
flechas.remove(flecha)
inimigos.remove(inimigo)
inimigos.append(Inimigo())
pontos += 10
som_colisao_inimigo.play() # Toca o som da colisão com inimigo
# Verificar colisão com o jogador
if jogador.rect.colliderect(inimigo.rect):
vidas -= 1
inimigos.remove(inimigo)
inimigos.append(Inimigo())
som_colisao_jogador.play() # Toca o som da colisão com o jogador
if vidas <= 0:
fim_jogo = True
# Desenhar tudo
jogador.desenhar()
for flecha in flechas:
flecha.desenhar()
for inimigo in inimigos:
inimigo.desenhar()
# Exibir informações
fonte = pygame.font.SysFont("arial", 30)
texto_pontos = fonte.render(f"Pontos: {pontos}", True, BRANCO)
tela.blit(texto_pontos, (10, 10))
texto_vidas = fonte.render(f"Vidas: {vidas}", True, BRANCO)
tela.blit(texto_vidas, (700, 10))
# Atualizar a tela
pygame.display.flip()
clock.tick(60) # 60 FPS
pygame.quit()
# Iniciar o jogo
jogo()
Programar é resolver problemas — e mudar realidades
O mercado de tecnologia é um dos que mais cresce no mundo, e a demanda por profissionais qualificados é gigantesca. Estima-se que o Brasil precisará de mais de 700 mil profissionais de TI até 2025, segundo estudos do setor.
Para jovens de baixa renda, esse número representa uma janela de oportunidades.
Com o conhecimento certo, um notebook e acesso à internet, é possível conquistar empregos remotos, freelas e até criar startups. A programação derruba barreiras geográficas, permitindo que talentos de comunidades periféricas atinjam empresas globais.
💻 CÓDIGO PROFISSIONAL ATUALIZADO
Aqui está a versão melhorada para a galera copiar e colar 👇
A programação é muito mais do que uma profissão: é um caminho de libertação e desenvolvimento pessoal. Ela oferece ferramentas para criar o novo, questionar o velho e redesenhar o futuro.
Na Academy Code, acreditamos que o futuro da tecnologia é o futuro da inclusão — e cada jovem que aprende a programar é uma nova linha de código na transformação do mundo.
💡 “Quando um jovem aprende a programar, ele não apenas muda o código de um software — ele reprograma a própria história.”