From 727e82cc618245d57a60e3049e2a8f99e2ca3e9c Mon Sep 17 00:00:00 2001 From: Samuel Genheden Date: Sun, 24 Mar 2019 09:10:46 +0100 Subject: [PATCH] Pygame zero version --- Pgzero/README.md | 12 ++++++ Pgzero/bugrace.py | 87 ++++++++++++++++++++++++++++++++++++++++ Pgzero/images/bug.png | Bin 0 -> 4014 bytes Pgzero/images/green.png | Bin 0 -> 11225 bytes Pgzero/images/track.png | Bin 0 -> 11285 bytes 5 files changed, 99 insertions(+) create mode 100644 Pgzero/README.md create mode 100644 Pgzero/bugrace.py create mode 100644 Pgzero/images/bug.png create mode 100644 Pgzero/images/green.png create mode 100644 Pgzero/images/track.png diff --git a/Pgzero/README.md b/Pgzero/README.md new file mode 100644 index 0000000..86e4359 --- /dev/null +++ b/Pgzero/README.md @@ -0,0 +1,12 @@ + +Install with + +`` +pip install pgzero +`` + +Run with + +`` +pgzrun bugrace.py +`` diff --git a/Pgzero/bugrace.py b/Pgzero/bugrace.py new file mode 100644 index 0000000..9f41241 --- /dev/null +++ b/Pgzero/bugrace.py @@ -0,0 +1,87 @@ +import math + +bug = Actor("bug") +bug.pos = 170, 80 +bug.outside = False + +WIDTH = 480 +HEIGHT = 360 +GREEN = (0, 255, 0) + + +def draw(): + screen.clear() + screen.fill(GREEN) + screen.blit("track", (0, 0)) + bug.draw() + + +def update(): + move(bug, 1) + stop_at_edge(bug) + if touching_color(bug, GREEN): + if not bug.outside: + print("Outside") + bug.outside = True + else: + if bug.outside: + print("Inside") + bug.outside = False + + +def on_key_down(key): + if key == keys.LEFT: + bug.angle += 15 + elif key == keys.RIGHT: + bug.angle -= 15 + + +def move(sprite, steps): + radians = math.pi / 180.0 * sprite.angle + dx = steps * math.cos(radians) + dy = steps * math.sin(radians) + sprite.left += dx + sprite.top -= dy + + +def stop_at_edge(sprite): + if sprite.right >= WIDTH: + sprite.right = WIDTH + elif sprite.left <= 0: + sprite.left = 0 + if sprite.bottom >= HEIGHT: + sprite.bottom = HEIGHT + elif sprite.top <= 0: + sprite.top = 0 + + +def touching_color(sprite, color): + def _scan_y(dx): + # Scan the contour of the sprite from top to middle + for y in range(ymin, halfheight + 1): + if sprite._surf.get_at((x, y))[3] == 0: # If transparent + continue + worldx = int(sprite.left + x - dx) + worldy = int(sprite.top + y - 1) + return screen.surface.get_at((worldx, worldy)) == color + # Scan the contour of the sprite from bottom to middle + for y in range(ymax, halfheight - 1, -1): + if sprite._surf.get_at((x, y))[3] == 0: + continue + worldx = int(sprite.left + x - dx) + worldy = int(sprite.top + y + 1) + return screen.surface.get_at((worldx, worldy)) == color + return False + + xmin, ymin, xmax, ymax = sprite._surf.get_bounding_rect() + halfwidth = int(0.5 * (xmax - xmin)) + halfheight = int(0.5 * (xmax - xmin)) + # Scan the contour of the sprite from left to middle + for x in range(xmin, halfwidth + 1): + if _scan_y(dx=-1): + return True + # Scan the contour of the sprite from right to middle + for x in range(xmax, halfwidth - 1, -1): + if _scan_y(dx=+1): + return True + return False diff --git a/Pgzero/images/bug.png b/Pgzero/images/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..cce9c4a42a73cb9d5b8bcfce59c08518519f8f2e GIT binary patch literal 4014 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 UKCp6UQUCw|07*qoM6N<$f}>R1aR2}S literal 0 HcmV?d00001 diff --git a/Pgzero/images/green.png b/Pgzero/images/green.png new file mode 100644 index 0000000000000000000000000000000000000000..c99f9b150e0fd5d0d1c83afa511fd5726220fcee GIT binary patch literal 11225 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 U^|rJg3;_RN%9>9qADf5%FDtyZSO5S3 literal 0 HcmV?d00001