From 30844e3baee55d71bf6849120c5c2082e0382ee6 Mon Sep 17 00:00:00 2001 From: Stephen Deaton Date: Thu, 11 Jul 2024 17:53:38 -0400 Subject: [PATCH] starteds pygame shmup tutorial --- PyGame/practice/gameprac/smup.py | 94 +++++++++++++++++++++++++++++++++++++++ PyGame/practice/pygametemplate.py | 3 +- 2 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 PyGame/practice/gameprac/smup.py diff --git a/PyGame/practice/gameprac/smup.py b/PyGame/practice/gameprac/smup.py new file mode 100644 index 0000000..6910247 --- /dev/null +++ b/PyGame/practice/gameprac/smup.py @@ -0,0 +1,94 @@ +import pygame +import random + + + + + +WIDTH = 480 +HEIGHT = 600 +WINDOW_SIZE = (WIDTH, HEIGHT) +FPS = 60 + +WHITE = (255, 255, 255) +BLACK = (0, 0, 0) +RED = (255, 0, 0) +GREEN = (0, 255, 0) +BLUE = (0, 0, 255) + +pygame.init() +pygame.mixer.init() +screen = pygame.display.set_mode(WINDOW_SIZE) +pygame.display.set_caption("Shmup") +clock = pygame.time.Clock() + +all_sprites = pygame.sprite.Group() + +class PLayer(pygame.sprite.Sprite): + def __init__(self): + pygame.sprite.Sprite.__init__(self) + self.image = pygame.Surface((50, 40)) + self.image.fill(GREEN) + self.rect = self.image.get_rect() + self.rect.centerx =WIDTH / 2 + self.rect.bottom = HEIGHT - 10 + self.speedx = 0 + + def update(self): + self.speedx = 0 + keystate = pygame.key.get_pressed() + if keystate[pygame.K_a]: + self.speedx = -8 + if keystate[pygame.K_d]: + self.speedx = 8 + self.rect.x += self.speedx + if self.rect.right > WIDTH: + self.rect.right = WIDTH + if self.rect.left < 0: + self.rect.left = 0 + +class Mob(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(0, 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.y += self.speedy + self.rect.x += self.speedx + if self.rect.top > HEIGHT + 10: + self.rect.x = random.randrange(0, WIDTH - self.rect.width) + self.rect.y = random.randrange(-100, -40) + self.speed = random.randrange(1, 8) + +all_sprites = pygame.sprite.Group() +mobs = pygame.sprite.Group() +player = PLayer() +all_sprites.add(player) +for i in range(8): + m = Mob() + all_sprites.add(m) + mobs.add(m) + +running = True +while running: + clock.tick(FPS) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + all_sprites.update() + + screen.fill(BLACK) + all_sprites.draw(screen) + pygame.display.flip() + + + +pygame.quit() \ No newline at end of file diff --git a/PyGame/practice/pygametemplate.py b/PyGame/practice/pygametemplate.py index cc53a9b..d3915d7 100644 --- a/PyGame/practice/pygametemplate.py +++ b/PyGame/practice/pygametemplate.py @@ -1,6 +1,6 @@ import pygame import random -import os + WIDTH = 360 @@ -19,7 +19,6 @@ pygame.mixer.init() screen = pygame.display.set_mode(WINDOW_SIZE) pygame.display.set_caption("My Game") clock = pygame.time.Clock() -os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide" running = True while running: clock.tick(FPS)