Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import pygame
- WIDTH = 1200
- HEIGHT = 800
- FPS = 120
- pygame.init()
- window = pygame.display.set_mode((WIDTH, HEIGHT))
- def load_image(filename, scale = 1):
- surface = pygame.image.load(filename).convert_alpha()
- size = surface.get_rect().size
- scaled_image = pygame.transform.scale(surface, (size[0] * scale, size[1] * scale))
- rect = scaled_image.get_rect()
- return rect, scaled_image
- class red_alien:
- class laser:
- rect, sprite = load_image('images/enemies/red_alien_bullet.png')
- damage = 2
- def __init__(self, pos):
- self.pos = pos
- rect, sprite = load_image('images/enemies/red_alien.png', 0.3)
- def __init__(self):
- self.pos = [random.randint(10, WIDTH - 10), random.randint(10, 100)]
- self.speed = random.randint(2, 5)
- self.bullets = []
- self.bullet_timer = random.randint(1, FPS)
- def update(self):
- window.blit(self.sprite, self.pos)
- self.pos[0] += self.speed
- if self.pos[0] > WIDTH - self.rect.w:
- self.pos[0] = WIDTH - self.rect.w
- self.speed = -self.speed
- if self.pos[0] < 0:
- self.pos[0] = 0
- self.speed = -self.speed
- self.bullet_timer -= 1
- if self.bullet_timer == 0:
- self.bullets.append(self.laser(list(self.pos)))
- self.bullet_timer = random.randint(1, FPS)
- def update_lasers(self):
- deadbullets = []
- for bullet in self.bullets:
- window.blit(bullet.sprite, bullet.pos)
- bullet.pos[1] += 5
- if bullet.pos[1] > HEIGHT + bullet.rect.h:
- deadbullets.append(bullet)
- for bullet in deadbullets:
- self.bullets.remove(bullet)
- red_aliens = [red_alien() for _ in range(5)]
- exit_demo = False
- while not exit_demo:
- events = pygame.event.get()
- for event in events:
- if event.type == pygame.KEYUP and event.key == pygame.K_ESCAPE:
- exit_demo = True
- window.fill((0, 0, 0))
- for alien in red_aliens:
- alien.update()
- alien.update_lasers()
- pygame.display.update()#
- pygame.time.Clock().tick(120)
Add Comment
Please, Sign In to add comment