From 4c77766aaf06b1ce4624383c27bdc5a35ddd5588 Mon Sep 17 00:00:00 2001 From: CronyAkatsuki Date: Mon, 21 Jun 2021 20:00:50 +0200 Subject: [PATCH] Basic gameplay. --- main.py | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..f33ac92 --- /dev/null +++ b/main.py @@ -0,0 +1,114 @@ +import pygame, random, sys + +# global variables +windowWidth = 800 +windowHeight = 800 +fps = 60 + +# initialize pygame and create a window +pygame.init() +clock = pygame.time.Clock() +window = pygame.display.set_mode((windowWidth, windowHeight)) +pygame.display.set_caption("Pygame Dodger") +pygame.mouse.set_visible(False) + +# create a quit function +def terminate(): + pygame.quit() + sys.exit() + +def redrawGameWindow(): + window.fill((0,0,0)) + + for baddie in baddies: + baddie.draw(window) + man.draw(window) + + pygame.display.update() + +# enemy class +class enemy(object): + def __init__(self): + self.startLine = 100 + self.endLine = 700 + self.minSize = 10 + self.maxSize = 40 + self.minSpeed = 1 + self.maxSpeed = 8 + self.y = 10 + self.x = random.randint(self.startLine, self.endLine) + self.width = self.height = random.randint(self.minSize, self.maxSize) + self.vel = random.randint(self.minSpeed, self.maxSpeed) + self.hitbox = pygame.Rect(self.x, self.y, self.width, self.height) + + def draw(self, window): + pygame.draw.rect(window, (255,0,0), (self.x, self.y, self.width, self.height)) + + def move(self): + self.hitbox = pygame.Rect(self.x, self.y, self.width, self.height) + self.y += self.vel + +# player class +class player(object): + def __init__(self, x, y, width, height): + self.x = x + self.y = y + self.width = width + self.height = height + self.isAlive = True + self.moveSpeed = 5 + self.hitbox = pygame.Rect(self.x, self.y, self.width, self.height) + + def draw(self, window): + pygame.draw.rect(window, (0,255,0), (self.x, self.y, self.width, self.height)) + + def move(self, keys): + self.hitbox = pygame.Rect(self.x, self.y, self.width, self.height) + if keys[pygame.K_RIGHT] and self.x < windowWidth - self.width - 50: + self.x += self.moveSpeed + if keys[pygame.K_LEFT] and self.x > 0 + 50: + self.x -= self.moveSpeed + if keys[pygame.K_UP] and self.y > 0 + windowWidth / 2: + self.y -= self.moveSpeed + if keys[pygame.K_DOWN] and self.y < windowHeight - self.height - 50: + self.y += self.moveSpeed + + +man = player(100, 700, 30, 30) +baddies = [] +baddieSpawnRate = 40 +timer = 0 + +# main loop +run = True +while run: + if timer % baddieSpawnRate == 0: + baddies.append(enemy()) + + for baddie in baddies: + baddie.move() + + if man.hitbox.colliderect(baddie.hitbox): + run = False + + if baddie.y + baddie.height + 10 > windowHeight: + baddies.pop(baddies.index(baddie)) + + keys = pygame.key.get_pressed() + + clock.tick(fps) + + man.move(keys) + + redrawGameWindow() + + timer += 1 + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + run = False + + if keys[pygame.K_ESCAPE]: + run = False + +terminate() \ No newline at end of file