Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pygame import *
- import random
- import sys
- import pygame
- WIDTH = 600
- HEIGHT = 750
- FPS = 60
- SPEEDX = 5
- SPEEDY = 3
- # define colors
- BLACK = (0, 0, 0)
- RED = (255, 0, 0)
- GREEN = (0, 255, 0)
- # initialize pygame and create window
- pygame.init()
- screen = pygame.display.set_mode((WIDTH, HEIGHT))
- clock = pygame.time.Clock()
- class Player(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- self.image = pygame.Surface((40, 40))
- self.image.fill(GREEN)
- self.rect = self.image.get_rect()
- self.rect.centerx = WIDTH / 2
- self.rect.y = HEIGHT
- def update(self):
- self.SPEEDX = 0
- self.SPEEDY = 1
- keystate = pygame.key.get_pressed()
- #Move right
- if keystate[pygame.K_d]:
- self.SPEEDX = SPEEDX
- #Move left
- if keystate[pygame.K_a]:
- self.SPEEDX = - SPEEDX
- #Make the runner run
- if keystate[pygame.K_w]:
- self.SPEEDY = - SPEEDY
- #Close the game
- if keystate[pygame.K_LCTRL] and keystate[pygame.K_z]:
- sys.exit()
- #Make the character moving
- self.rect.x += self.SPEEDX
- self.rect.y -= self.SPEEDY
- #Do not cross screen border
- #Left side
- if self.rect.left < 0:
- self.rect.left = 0
- #Right side
- if self.rect.right > WIDTH:
- self.rect.right = WIDTH
- #Bottom side
- if self.rect.bottom > HEIGHT:
- self.rect.bottom = HEIGHT
- #Top side
- if self.rect.top < 0 :
- self.rect.top = 0
- # if player reaches top 1/4 of screen
- if self.rect.top <= HEIGHT / 4:
- self.rect.centerx = WIDTH / 2
- self.rect.y = HEIGHT
- class Enemy(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- self.image = pygame.Surface((30, 40))
- self.image.fill(RED)
- self.rect = self.image.get_rect()
- self.rect.x = random.randrange(WIDTH - self.rect.width)
- self.rect.y = random.randrange(-100, -40)
- self.speedy = random.randrange(1, 8)
- self.speedx = random.randrange(-3, 3)
- def update(self):
- self.rect.x += self.speedx
- self.rect.y += self.speedy
- if self.rect.top > HEIGHT + 10 or self.rect.left < -25 or self.rect.right > WIDTH + 20:
- self.rect.x = random.randrange(WIDTH - self.rect.width)
- self.rect.y = random.randrange(-100, -40)
- self.speedy = random.randrange(1, 8)
- def Death():
- player.rect.centerx = WIDTH / 2
- player.rect.y = HEIGHT
- all_enemies.remove(all_enemies)
- player = Player()
- enemy = Enemy()
- all_sprites = pygame.sprite.Group()
- all_enemies = pygame.sprite.Group()
- all_sprites.add(player)
- for i in range(10):
- enemies = Enemy()
- all_sprites.add(enemies)
- all_enemies.add(enemies)
- # Game loop
- running = True
- while running:
- clock.tick(FPS)
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- running = False
- if sprite.spritecollide(player, all_enemies, False):
- Death()
- # Update
- all_sprites.update()
- # Draw / render
- screen.fill(BLACK)
- all_sprites.draw(screen)
- pygame.display.flip()
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement