Hi Freddyyy
Irgendwie willst du mir nicht erklären wie schlussendlich die Bedienung deines Spieles abläuft. Ich schaue hier bei mir in die Glaskugel und versuche herauszufinden was du eigentlich willst!
Für die Bedienung des Headings brauchts du folgende Tastaturtasten:
Taste
a: Dreht Turtle Richtung
Westen
Taste
d: Dreht Turtle Richtung
Osten
Taste
w Dreht Turtle Richtung
Norden
Taste
s: Dreht Turtle Richtung
Süden
Der Code fürs Heading
Code: Alles auswählen
def nord():
turtle.setheading(NORTH)
def south():
turtle.setheading(SOUTH)
def west():
turtle.setheading(WEST)
def east():
turtle.setheading(EAST)
Für die Bewegung habe ich einmal die Tasten rechts <- & links -> eingesetzt:
Taste
<-: Turtle bewegt sich
rückwärts
Taste
->: Turtle bewegt sich
vorwärts
Der Code für die Bewegung:
Code: Alles auswählen
def forward():
turtle.forward(MOVE_STEP)
def backward():
turtle.backward(MOVE_STEP)
Der Code für die Auslesung des Pixelfarbwertes aus dem Hintergrundbild:
Taste
c: Liest
Pixelfarbwert und gibt in ins
Terminal aus
Meine Frage was soll dieser Code in deinem Skript? (Dieser verhindert das die Turtle auf position (-500/500) gesetzt wird!)
Code: Alles auswählen
fd = 1
x = turtle.xcor()
y = turtle.ycor()
ende = False
while not ende:
turtle.forward(fd)
border_check()
WICHTIG: Du muss uns offenbaren wie die endgültige Bedienung deines Spieles abläuft sonst kann ich dir leider aus Zeitaufwands-Günden nicht mehr weiterhelfen!
Hier noch der modifizierte Code deines Skriptes:
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)
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 = False
#while not ende:
#turtle.forward(fd)
#border_check()
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
