Hier das modifizierte Skript. Habe die Turtle auf Koordinate (0,0) gesetzt. Weil die Koordinate (-500,500) setzt die Turtle in die obere linke Ecke in einen schwer überblickbaren schwarzen Bereich deines Hintergrundbildes. Kannst du selber für deine Versuche auf diese Koordinate setzen. Bei folgenden Skript siehst du wie sich die Turtle schrittweise von Koordinate (0,0) Richtung Osten bewegt. Du kannst deren Bewegungsrichtung mit den von dir definierten Taste (a,d,w,s) jederzeit verändern.
Code: Alles auswählen
import turtle
from turtle import register_shape, Shape
import tkinter as tk
from PIL import Image, ImageTk
NORTH = 90
SOUTH = 270
EAST = 0
WEST = 180
MOVE_STEP = 10
ANGLE_STEP = 90
def forward():
turtle.forward(MOVE_STEP)
def backward():
turtle.backward(MOVE_STEP)
def nord():
turtle.setheading(NORTH)
def south():
turtle.setheading(SOUTH)
def west():
turtle.setheading(WEST)
def east():
turtle.setheading(EAST)
screen = turtle.Screen()
#img = ImageTk.PhotoImage(Image.open("Turtle.png"))
#register_shape("Bild", Shape("image", img))
# turtle.shape("Bild")
bg_image = tk.PhotoImage(file="labyrinth.png")
bg_image_width = bg_image.width()
bg_image_height = bg_image.height()
bg_image = tk.PhotoImage(file="labyrinth.png")
bg_image_width = bg_image.width()
bg_width_offset = bg_image_width / 2
bg_image_height = bg_image.height()
bg_height_offset = bg_image_height / 2
screen.setup(bg_image_width, bg_image_height)
canvas = screen.getcanvas()
canvas.create_image(0, 0, image=bg_image)
def border_check():
xpos, ypos = turtle.position()
bg_img_xpos = int(xpos + bg_width_offset)
bg_img_ypos = int(bg_image_height - bg_width_offset - ypos)
#print("Border Check:", bg_img_xpos, bg_img_ypos)
pixel_color = bg_image.get(bg_img_xpos, bg_img_ypos)
#print("Farbe:", pixel_color)
if pixel_color == (0, 0, 0):
turtle.goto(0, 0)
def coordinates():
xpos, ypos = turtle.position()
bg_img_xpos = int(xpos + bg_width_offset)
bg_img_ypos = int(bg_image_height - bg_width_offset - ypos)
pixel_color = bg_image.get(bg_img_xpos, bg_img_ypos)
print("Farbe:", pixel_color)
def turtle_automove_forward():
print('Hi')
forward()
canvas.after(500, turtle_automove_forward)
turtle.penup()
turtle.speed(0)
turtle.goto(0, 0)
#turtle.goto(-500, 500)
turtle.setheading(EAST)
turtle.showturtle()
# Keyboard actions
#screen.listen()
#screen.onkey(forward, "w")
#screen.onkey(backward, "s")
#screen.onkey(left, "a")
#screen.onkey(right, "d")
#screen.onkey(coordinates, "c")
screen.listen()
# Tastatureingabe für die Richtung
screen.onkey(nord, "w")
screen.onkey(south, "s")
screen.onkey(west, "a")
screen.onkey(east, "d")
screen.onkey(coordinates, "c")
# Tastatureingabe für die Bewegung
screen.onkey(forward, "Right")
screen.onkey(backward, "Left")
#fd = 1
#x = turtle.xcor()
#y = turtle.ycor()
#ende = True
#while not ende:
#forward()
##border_check()
turtle_automove_forward()
screen.listen()
turtle.mainloop()
#0.0 203.0
#999.0 0.0
#turtle.forward(fd)
#x = turtle.xcor()#+500
#y = turtle.ycor()#+500
#a = bg_image.get(x, y)
#if a == (0, 0, 0, 255):
#print("Schwarz")
#else:
#print("weiß")
#if a == (0, 0, 0, 0) or a == (0, 0, 0, 255):
#turtle.goto(0, 0)
#print(a)
Gruss wuf