import pygame
import random
from math import *
# inicializa pygame
[Link]()
# Creo la pantalla
ventana = [Link].set_mode((800, 600))
# Coloco titulo e icono Y fondo
[Link].set_caption("Invasion Espacial")
icono = [Link]("[Link]")
[Link].set_icon(icono)
fondo = [Link]("[Link]")
# Variables del Jugador
img_jugador = [Link]("[Link]")
jugador_x = 368
jugador_y = 500
jugador_x_cambio = 0
# Variables del enemigo
img_enemigo = [Link]("[Link]")
enemigo_x = [Link](0, 736)
enemigo_y = [Link](50, 200)
enemigo_x_cambio = 1 # mas rapido
enemigo_y_cambio = 50
# Variables de la bala
img_bala = [Link]("[Link]")
bala_x = 0
bala_y = 500 # altura del jugador
bala_x_cambio = 0 # no la uso
bala_y_cambio = 3
bala_visible = False
# Puntaje
puntaje = 0
# funcion que construye la posicion del jugador
def jugador(x, y):
[Link](img_jugador, (x, y))
# funcion que construye la posicion del jugador
def enemigo(x, y):
[Link](img_enemigo, (x, y))
# Funcion para disparar la bala
def disparar_bala(x, y):
global bala_visible
bala_visible = True
[Link](img_bala, (x + 26, y + 10))
# Funcion detectar colision
def detectar_colision(x1, y1, x2, y2):
distancia = sqrt(pow(x1 - x2, 2) + pow(y2 - y1, 2))
Descargar imagen de freepik 800*600 y los iconos de 64*64
if distancia < 27:
return True
else:
return False
se_ejecuta = True
while se_ejecuta:
# Color de fonde de la pantalla
# [Link]((205, 144, 228))
# Cambio el color de ventana por imagen de fondo
[Link](fondo, (0, 0))
for evento in [Link]():
# Evento cerrar
if [Link] == [Link]:
se_ejecuta = False
# Evento presionar teclas
if [Link] == [Link]:
if [Link] == pygame.K_LEFT:
jugador_x_cambio = - 1
if [Link] == pygame.K_RIGHT:
jugador_x_cambio = 1
if [Link] == pygame.K_SPACE:
if not bala_visible:
bala_x = jugador_x
disparar_bala(bala_x, bala_y)
# Evento soltar teclas
if [Link] == [Link]:
if [Link] == pygame.K_LEFT or [Link] == pygame.K_RIGHT:
jugador_x_cambio = 0
# Modifico ubicación del jugador
jugador_x += jugador_x_cambio
# mantener dentro de los bordes jugador
if jugador_x <= 0:
jugador_x = 0
elif jugador_x >= 736:
jugador_x = 736
# Modifico ubicación del enemigo
enemigo_x += enemigo_x_cambio
# mantener dentro de los bordes enemigo
if enemigo_x <= 0:
enemigo_x_cambio = 1
enemigo_y += enemigo_y_cambio
elif enemigo_x >= 736:
enemigo_x_cambio = -1
enemigo_y += enemigo_y_cambio
# movimiento bala
if bala_y <= -32:
bala_y = 500
bala_visible = False
Descargar imagen de freepik 800*600 y los iconos de 64*64
if bala_visible:
disparar_bala(bala_x, bala_y)
bala_y -= bala_y_cambio
# Colision
colision = detectar_colision(enemigo_x, enemigo_y, bala_x, bala_y)
if colision:
bala_y = 500
bala_visible = False
puntaje += 1
print(puntaje)
enemigo_x = [Link](0, 736)
enemigo_y = [Link](50, 200)
jugador(jugador_x, jugador_y)
enemigo(enemigo_x, enemigo_y)
# Actualizar
[Link]()
Descargar imagen de freepik 800*600 y los iconos de 64*64