generated from technolyceum/ai6-m2
82 lines
1.5 KiB
Python
82 lines
1.5 KiB
Python
# asteroid_game.py - Starter Template
|
|
import turtle
|
|
import random
|
|
|
|
# === SETUP THE GAME WINDOW ===
|
|
screen = turtle.Screen()
|
|
screen.setup(600,600)
|
|
screen.bgcolor("black")
|
|
screen.title("Asteroid Game")
|
|
screen.tracer(0)
|
|
|
|
# === CREATE PLAYER ===
|
|
player = turtle.Turtle()
|
|
player.hideturtle()
|
|
player.color("#00FFFF")
|
|
player.penup()
|
|
player.goto(0,-250)
|
|
player.emoji = "^"
|
|
player_speed = 20
|
|
# === GAME VARIABLES ===
|
|
game_active = True
|
|
asteroides =[]
|
|
|
|
# === FUNCTIONS ===
|
|
|
|
def draw_player():
|
|
player.clear()
|
|
player.write(player.emoji, align="center",
|
|
font=("Arial",32, "normal"))
|
|
|
|
def move_left():
|
|
if not game_active:
|
|
return
|
|
x = player.xcor()
|
|
x -= player_speed
|
|
if x < -280:
|
|
x = -280
|
|
player.setx(x)
|
|
draw_player()
|
|
|
|
def move_right():
|
|
if not game_active:
|
|
return
|
|
x = player.xcor()
|
|
x += player_speed
|
|
if x > 280:
|
|
x = 280
|
|
player.setx(x)
|
|
draw_player()
|
|
|
|
|
|
def create_asteroid():
|
|
"""Create a new asteroid with random size"""
|
|
asteroid = turtle.Turtle()
|
|
asteroid.hideturtle()
|
|
|
|
asteroid.emoji = "🪨" # Rock emoji
|
|
asteroid.color = "#AA6644" # Brown color
|
|
asteroid.size = random.randint(20, 100)
|
|
|
|
asteroid.penup()
|
|
x = random.randint(-280, 280)
|
|
y = 300
|
|
asteroid.goto(x, y)
|
|
|
|
asteroid.speed = 5 - (asteroid.size / 25)
|
|
|
|
asteroids.append(asteroid)
|
|
return asteroid
|
|
|
|
# === TEST CODE ===
|
|
|
|
# Uncomment this to test:
|
|
# draw_player()
|
|
# screen.update()
|
|
|
|
screen.listen()
|
|
screen.onkey(move_left, "Left")
|
|
screen.onkey(move_right, "Right")
|
|
|
|
# turtle.done()
|