from Tkinter import *
window = Tk()
canvas = Canvas(window, width=500, height=500, background="green")
canvas.pack()
speed_x = 5
speed_y = 5
ball = canvas.create_oval(0,0,32,32,fill="blue")
while True:
canvas.move(ball, speed_x, speed_y)
canvas.after(30)
canvas.update()
coords = canvas.coords(ball)
if coords[2] >= 500:
speed_x = -5
if coords[0] <= 0:
speed_x = 5
if coords[3] >= 500:
speed_y = -5
if coords[1] <= 0:
speed_y = 5
Моя цель - навсегда отбросить мяч по экрану. Я заставил его отскакивать от стен, но только из одного угла в другой. Он просто отскакивает назад и вперед от (0,0) и (500 500). Я не вижу, где я ошибся. Как мне заставить его отскакивать в случайных направлениях? Я попытался изменить начальную точку, но ничего не сделал.Мяч только отскакивает назад и вперед по диагонали?
Я думал, что допустил ошибку в строках 18 и ниже, но я использовал < = и> =, поэтому это не должно относиться ко всем цифрам выше 0 и ниже 500? Почему он не перемещается в другие места?
У вас есть правильная идея, и ваш код работает правильно. Просто подумайте о направлении мяча, что бы вы ожидали, что это произойдет, когда он ударит в угол ?. Теперь попробуйте изменить область с квадрата 500x500, на прямоугольник размером 400x500 и посмотреть, что произойдет. Надеюсь, это ставит вас в правильном направлении. –
Это определенно помогло, спасибо. – Astrosphere