0
import turtle
#import math
#import random
#import time



wn = turtle.Screen()
wn.bgcolor("black")
wn.title("Katie's Maze")
wn.setup(700,700)


#create pen
class Pen(turtle.Turtle):
    def __init__(self):
        turtle.Turtle.__init__(self)
        self.shape("square")
        self.color("green")
        self.penup()
        self.speed(0)

class Player(turtle.Turtle):
    def __init__(self):
        turtle.Turtle.__init__(self)
        self.shape("square")
        self.color("white")
        self.penup()
        self.speed(0)

    def go_up(self):
        move_to_x = player.xcor()
        move_to_y = player.ycor() + 24


        if (move_to_x, move_to_y) not in walls:
            self.goto(move_to_x, move_to_y)

    def go_down(self):
        move_to_x = player.xcor()
        move_to_y = player.ycor() - 24

        if (move_to_x, move_to_y) not in walls:
            self.goto(move_to_x, move_to_y)

    def go_left(self):
        move_to_x = player.xcor() - 24
        move_to_y = player.ycor()

        if (move_to_x, move_to_y) not in walls:
            self.goto(move_to_x, move_to_y)

    def go_right(self):
        move_to_x = player.xcor() + 24
        move_to_y = player.ycor()

        if (move_to_x, move_to_y) not in walls:
            self.goto(move_to_x, move_to_y)


#level
levels = [""]
#define level
level_1 = [
"XXXXXXXXXXXXP XXXXXXXXXX",
"XXXXXXXXXXXX  XXXXXXXXXX",
"XXXXXXXXXXXX         XXX",
"XXXXXXXXXXXXXXXXXXX   XX",
"XXXXXXXXXXXXXXXXXXXX  XX",
"XXX                   XX",
"XXX  XXXXXXXXXXXX  XXXXX",
"X   XXXXXXXXXXX   XXXXXX",
"X  XXXXXXXXXXXXX  XXXXXX",
"X        XX       XXXXXX",
"XXXXXXX  XX   XXXXXXXXXX",
"X        XX           XX",
"X  XXXXXXXXXXXXXXXXX  XX",
"X              XXXXX  XX",
"X  XXXXXXXXXXXX       XX",
"X     XXXXXXXXX  XXXXXXX",
"XXXX  XXXXXX     XXXXXXX",
"X     XXXXXX  XXXXXXXXXX",
"X  XXXX       XXXXXXXXXX",
"X  XXXX  XXXXXXXXXXXXXXX", 
"X    XX              XXX",
"XXX  XXXXXXXXXXXXXX  XXX",
"XXX           XXXXX  XXX",
"XXXXXXXXXXXX  XXXXX  XXX",
"XXXXXXXXXXXX  XXXXX  XXX"
]

#maze list
levels.append(level_1)

#create level setup
def setup_maze(level):
    for y in range(len(level)):
        for x in range(len(level[y])):

            character = level[y][x]
            #calculate the screen x, y coords
            screen_x = -288 + (x * 24)
            screen_y = 288 - (y * 24)

            if character == "X":
                pen.goto(screen_x, screen_y)
                pen.stamp()
                #add coords to wall list
                walls.append((screen_x, screen_y))


            if character == "P":
                player.goto(screen_x, screen_y)
                    

                #create class instances
pen = Pen()
player = Player()

walls = []

setup_maze(levels[1])



#keyboard binding
turtle.listen()
turtle.onkey(player.go_left,"Left")
turtle.onkey(player.go_right,"Right")
turtle.onkey(player.go_up,"Up")
turtle.onkey(player.go_down,"Down")

game_state = "splash"
#turn off screen updates
wn.tracer(0)


while True:
    pen.clear()

    if game_state == "splash":
        wn.bgpic("splash.gif")
    wn.update()
    pass

this is my code, I have added what I thought would work for adding a splash screen but when I run it, it loads just the maze then exits and I get an error for my line "wn.bgpic("splash.gif")" and I am out of ideas right now but have a deadline for this project. I have tried a few other ideas just from youtube but they did not seem to work with what ive been using for this code.

  • 1
    [Tkinter Show splash screen and hide main screen until __init__ has finished](https://stackoverflow.com/questions/38676617/tkinter-show-splash-screen-and-hide-main-screen-until-init-has-finished) ? – Luuk Nov 19 '22 at 18:11
  • Remember that a `splash.gif` file must be available in the current directory. Consider using its full pathname if that's not the case. – J_H Nov 19 '22 at 19:04
  • 1
    Does this answer your question? [Tkinter Show splash screen and hide main screen until \_\_init\_\_ has finished](https://stackoverflow.com/questions/38676617/tkinter-show-splash-screen-and-hide-main-screen-until-init-has-finished) – J_H Nov 19 '22 at 19:05

0 Answers0