[refactor] Move screen class to separate file.

This commit is contained in:
2025-04-05 20:55:30 +02:00
parent d5cf59b739
commit b7365f0d4a
5 changed files with 9 additions and 28 deletions
View File
+2 -1
View File
@@ -1,2 +1,3 @@
.vscode
.micropico
.micropico
breakout.code-workspace
+4 -9
View File
@@ -1,5 +1,4 @@
# Breakout Game for Raspberry Pi Pico
This is a simple Breakout game implemented in MicroPython for the Raspberry Pi Pico. The game uses the Pico-LCD-1.14 dDisplay for graphics and input.
@@ -10,23 +9,19 @@ This is a simple Breakout game implemented in MicroPython for the Raspberry Pi P
- Score tracking
- Splash screen and game over screens
## Requirements
- Raspberry Pi Pico
- Pico-LCD-1.14 display
- MicroPython firmware installed on the Pico
## Installation and Setup
1. Connect the Pico-LCD-1.14 display to the Raspberry Pi Pico following the wiring diagram provided in the display's documentation.
2. Download the MicroPython firmware for the Raspberry Pi Pico from the official MicroPython website and install it on the Pico. You can use the Thonny IDE to upload the firmware.
3. Clone or download this repository to your local machine.
4. Open the Thonny IDE and connect to your Raspberry Pi Pico.
5. Copy the contents of the repository to the Pico's file system. You can do this by dragging and dropping the files from your local machine to the Thonny file explorer.
6. Once the files are copied, reset the Pico to start the game.
6. Once the files are copied, reset the Pico to start the game.
## .env file
In the .env file the user can control the behaviour of the joystick B-button.
DISABLE_B = 0 | 1 # Values: 0 = pressing B quits the program, 1 = pressing B does nothing.
-14
View File
@@ -1,14 +0,0 @@
{
"folders": [
{
"path": "."
},
{
"name": "Mpy Remote Workspace",
"uri": "pico:"
}
],
"settings": {
"python.languageServer": "Pylance"
}
}
+3 -4
View File
@@ -68,7 +68,7 @@ DEBOUNCE = 300_000
# ============================
try:
DISABLE_B = 0
with open("env", "r") as file:
with open(".env", "r") as file:
for line in file:
key, value = line.strip().split("=")
if key == "DISABLE_B":
@@ -152,9 +152,8 @@ class Paddle:
"""Draw paddle."""
screen.fbuf.fill_rect(self.x, self.y, self.width, self.height, PADDLE_COLOR)
def update(self, screen: Screen):
def update(self, screen: Screen, joystick: Joystick):
"""Update paddle position."""
global joystick
if joystick.joy_left() == 0:
self.move(-1)
elif joystick.joy_right() == 0:
@@ -431,7 +430,7 @@ def main_loop(screen, joystick):
sleep_us(DEBOUNCE) # Debounce delay
elif game_state == PLAYING and lives > 0 and score < 28: # Game loop
paddle.update(screen)
paddle.update(screen, joystick)
if ball_stuck:
# Keep the ball stuck to the paddle
ball.x = paddle.x + (paddle.width // 2)