Skip to content

Instantly share code, notes, and snippets.

@evilnapsis
Created May 8, 2024 20:42
Show Gist options
  • Save evilnapsis/e6f62a9dadd60386a2855415bfd0a834 to your computer and use it in GitHub Desktop.
Save evilnapsis/e6f62a9dadd60386a2855415bfd0a834 to your computer and use it in GitHub Desktop.
Primera version del juego SpaceAgain
import pygame
import sys
import random
pygame.init()
width, height = 540,960
myfont = pygame.font.SysFont("monospace", 15)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Disparando ...")
player_img= pygame.image.load("space/ship.webp")
player_img=pygame.transform.scale(player_img,(80,80))
bullet_img= pygame.image.load("space/shot.png")
bullet_img=pygame.transform.scale(bullet_img,(40,40))
### ROTAR LA IMAGEN DEL DISPARO
bullet_img = pygame.transform.rotate(bullet_img, 90)
#bullet_img = bullet_img.get_rect(center=rect.center)
enemy_img= pygame.image.load("space/enemy.png")
enemy_img=pygame.transform.scale(enemy_img,(64,36))
background_img= pygame.image.load("space/bg-space.png")
background_img=pygame.transform.scale(background_img,(width,height))
player = player_img.get_rect()
player.topleft = (width//2 - player.width//2, height - player.height - 10)
player_speed = 15
bullet = bullet_img.get_rect()
bullet_speed=20
bullets_array = []
enemy = enemy_img.get_rect()
enemy_speed = 10
enemies_array = []
clock = pygame.time.Clock()
keys = {"left": False, "right": False}
points =0
losts =0
while True:
print("Enemigos: ", len(enemies_array), "Balas : ",len(bullets_array))
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key==pygame.K_LEFT:
keys["left"]=True
elif event.key==pygame.K_RIGHT:
keys["right"]=True
elif event.key==pygame.K_SPACE:
bullet = bullet_img.get_rect()
bul = {"rect":pygame.Rect(
player.x+
player.width//2 - bullet.width//2,
player.y,
bullet.width,
bullet.height
),
"image":bullet_img
}
bullets_array.append(bul)
if event.type==pygame.KEYUP:
if event.key==pygame.K_LEFT:
keys["left"]=False
if event.key == pygame.K_RIGHT:
keys["right"]=False
if keys["left"] and player.left>0:
player.x-=player_speed
if keys["right"] and player.right < width:
player.x+=player_speed
for b in bullets_array:
b["rect"].y-=bullet_speed
if random.randint(0,100)<5:
enemy= enemy_img.get_rect()
enemy.x=random.randint(0, width - enemy.width)
enemies_array.append(enemy.copy())
for ene in enemies_array:
ene.y +=enemy_speed
if ene.y > height + 50:
losts+=1
enemies_array.remove(ene)
print("Perdiste: " , points)
#pygame.quit()
#sys.exit()
for b in bullets_array:
for ene in enemies_array:
if ene.colliderect(b["rect"]):
bullets_array.remove(b)
enemies_array.remove(ene)
points+=1
for ene in enemies_array:
if player.colliderect(ene):
pygame.quit()
sys.exit()
label = myfont.render(f"Puntos: {points} - Perdidos: {losts} ", 1, (255,255,255))
screen.blit(background_img,(0,0))
screen.blit(label, (0, 0))
screen.blit(player_img,player)
for b in bullets_array:
screen.blit(b["image"],b["rect"].topleft)
for ene in enemies_array:
screen.blit(enemy_img,ene)
pygame.display.flip()
clock.tick(30)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment