Помощь с Tkinter
Надо сделать, передвижение и сделать так чтоб персонаж сталкивался с кругом и на окне выводилось "Ты выйграл!". Картинки можно ставить любые.
import tkinter
import random
from tkinter import PhotoImage
import random as rd
def prepare_and_start():
global player
global circle
canvas.delete("all")
player_p = (random.randint(1, N_X - 1) * step,
random.randint(1, N_Y - 1) * step)
c_p = (random.randint(0, N_X - 1) * step,
random.randint(0, N_Y - 1) * step)
player = canvas.create_image(
(player_p[0], player_p[1]),
image=player_pic, anchor='nw')
label.config(text="Найди выход!")
master.bind("<KeyPress>", key_pressed)
circle = canvas.create_image(
(c_p[0], c_p[1]),
image=circle_pic, anchor='nw')
def move_warp(obj, move_x, move_y):
xy = canvas.coords(obj)
canvas.move(obj, move_x, move_y)
print(xy)
if xy[0] <= 0:
canvas.move(obj, WIDTH, 0)
if xy[0] >= 0:
canvas.move(obj, -WIDTH, 0)
if xy[1] <= 0:
canvas.move(obj, 0, HEIGHT)
if xy[1] >= 0:
canvas.move(obj, 0, -HEIGHT)
def key_pressed(event):
if event.keysym == 'Up':
move_warp(player, 0, -step)
if event.keysym == 'Down':
move_warp(player, 0, step)
if event.keysym == 'Right':
move_warp(player, step, 0)
if event.keysym == 'Left':
move_warp(player, -step, 0)
def quit_1():
quit()
exit()
def win():
if c_p[0] == player_p[0] or c_p[1] == player_p[1]:
quit_1()
master = tkinter.Tk()
master.title("Побег из игры")
step = 10
N_X = 50
N_Y = 50
N_X_C = 500
N_Y_C = 500
WIDTH = step * N_X
HEIGHT = step * N_Y
a = False
c_p = (rd.randint(1, N_X_C - 1),
rd.randint(1, N_Y_C - 1))
player_p = (rd.randint(1, N_X - 1),
rd.randint(1, N_Y - 1))
circle_pic = tkinter.PhotoImage(file='white circle.png')
player_pic = tkinter.PhotoImage(file='player.png')
canvas = tkinter.Canvas(master, bg='gray',
width=600, height=600)
label = tkinter.Label(master, text="Не попадись!")
restart = tkinter.Button(master, text="Начать заново", command=prepare_and_start)
restart.pack()
label.pack()
canvas.pack()
prepare_and_start()
win()
master.bind("<KeyPress>", key_pressed)
master.mainloop()
root = tkinter.Tk()
root.title('Побег из игры')
root.geometry('500x500+225+100')
txt = tkinter.Label(root, text='Ты победил')
txt.place(x=215, y=220)
root.mainloop()
Источник: Stack Overflow на русском