start_ground = codesters.Rectangle(0, -240, 500, 25, "darkgreen")
end_ground = codesters.Rectangle(0, 240, 500, 25, "darkgreen")
frogger = codesters.Sprite("turtle", 0, -240)
frogger.set_size(.4)
barrier = codesters.Line(-250, 248, -250, -248, "black")
barrier2 = codesters.Line(250, 248, 250, -248, "black")
for counter in range(-200, 250, 50):
road = codesters.Rectangle(0, counter, 500, 20, "gray")
road.set_opacity(.2)
def make_lilypad():
y_pos = random.randrange(-200, 200, 50)
x_pos = random.choice([-300, 300])
lilypad = codesters.Circle(x_pos, y_pos, 45, "green")
lily_spd = random.randint(1, 4)
lilypad.set_opacity(.3)
if x_pos > 200:
lilypad.set_x_speed(-lily_spd)
elif x_pos < -200:
lilypad.set_x_speed(lily_spd)
def make_car():
car_y_pos = random.randrange(-200, 200, 50)
car_x_pos = random.choice([-300, 300])
car_colors = ["red", "blue", "black", "orange"]
rand_color = car_colors[random.randint(0, 3)]
car = codesters.Rectangle(car_x_pos, car_y_pos, 50, 30, rand_color)
car_spd = random.randint(1, 3)
car.is_hazard()
if car_x_pos > 200:
car.set_x_speed(-car_spd)
elif car_x_pos < -200:
car.set_x_speed(car_spd)
def interval():
rand_num = random.randint(-2, 2)
if rand_num > 0:
for counter in range(rand_num):
make_car()
rand_num = random.randint(1, 4)
for counter in range(rand_num):
make_lilypad()
stage.event_interval(interval, 1)
def up_key():
frogger.go_to(frogger.get_x(), frogger.get_y() + 55)
# add other actions...
stage.event_key("up", up_key)
def down_key():
frogger.go_to(frogger.get_x(), frogger.get_y() - 55)
# add other actions...
stage.event_key("down", down_key)
def left_key():
frogger.go_to(frogger.get_x() - 55, frogger.get_y())
# add other actions...
stage.event_key("left", left_key)
def right_key():
frogger.go_to(frogger.get_x() + 55, frogger.get_y())
# add other actions...
stage.event_key("right", right_key)
stage.disable_all_walls()
# give some lilypads to start off with
for counter in range(10):
make_lilypad()
def collision(sprite, hit_sprite):
if hit_sprite.get_name() == "circle":
frogger.glide_to(hit_sprite.get_x(), hit_sprite.get_y())
frogger.set_x_speed(hit_sprite.get_x_speed())
elif hit_sprite.get_name() == "rectangle" and hit_sprite.get_color() != "darkgreen":
gm_over = codesters.Text("GAME OVER!", 0, 0, "red")
frogger.reset_animation()
elif hit_sprite.get_name() == "line":
gm_over = codesters.Text("GAME OVER!", 0, 0, "red")
frogger.reset_animation()
frogger.event_collision(collision)