The ship can move all diriction and got the asteroid to appear

Im thinking i might change the kind of game i want to build to a shooting the aliens and asteroid
but i need to figure out how to make the ship shoot and what happens when something hits it.
This commit is contained in:
tsmith37
2025-12-06 16:20:15 -05:00
parent 5e31240474
commit d0c4bb8b26
5 changed files with 16 additions and 8 deletions

View File

@@ -1,9 +1,9 @@
from retro.game import Game
from spaceship import Spaceship
from targets import Targets
from targets import Asteroid
board_size = (100, 25)
ship = Spaceship(board_size)
targets = Targets((board_size[0] // 2, 0))
game = Game([ship], {"score": 0}, board_size=board_size, color="white", debug=True)
targets = Asteroid((board_size[0] // 2, 0))
game = Game([ship, targets], {"score": 0}, board_size=board_size, color="white_on_blue")
game.play()

View File

@@ -8,11 +8,19 @@ class Spaceship:
def handle_keystroke(self, keystroke, game):
x, y = self.position
if keystroke.name in ("KEY_LEFT", "KEY_RIGHT"):
if keystroke.name in ("KEY_LEFT", "KEY_RIGHT", "KEY_UP", "KEY_DOWN"):
if keystroke.name == "KEY_LEFT":
new_position = (x - 1, y)
else:
elif keystroke.name == "KEY_RIGHT":
new_position = (x + 1, y)
elif keystroke.name == "KEY_UP":
new_position = (x, y-1)
elif keystroke.name == "KEY_DOWN":
new_position = (x, y+1)
if game.on_board(new_position):
if game.is_empty(new_position):
self.position = new_position

View File

@@ -1,5 +1,5 @@
class Targets:
character = '8'
class Asteroid:
character = 'O'
def __init__(self, position):
self.position = position
@@ -16,4 +16,4 @@ class Targets:
if new_position == ship.position:
game.end()
else:
self.position = new_position
self.position = new_position