центральная координата объекта - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь создать обнаружение столкновений в моей программе tkinter. Как видите, у меня есть два шара, которые движутся по холсту. Мне нужно использовать теорему Пифагора, поэтому я пытаюсь найти координаты центра шаров. Для зеленого шара я попробовал posgreen [2] - posgreen [0], чтобы получить x, однако, когда я распечатываю это, я получаю 30, и это никогда не меняется, posgreen [2] и possgreen [0] при распечатке изменяется с каждый l oop, однако, когда я вычитаю их, они, кажется, не меняются за l oop. Я их другой способ отработать центральное положение мяча, как он движется?

from tkinter import *
import random
import time


root = Tk()

def balls():
#speeds for each ball
    green_x_speed, green_y_speed = [1,1]
    red_x_speed, red_y_speed = [1,1]

    canvas = Canvas(root, width = 1000, height = 1000, bg="grey")
    root.title("collision detection")
    canvas.grid()


    greenball = canvas.create_oval(5, 5, 35, 35, fill="green")

    redball = canvas.create_oval(960, 960, 990, 990, fill="red")



    while True:
        #greenball
        canvas.move(greenball, green_x_speed, green_y_speed)
        posgreen = canvas.coords(greenball)

        if posgreen[3] >= 1000 or posgreen[1] <= 0:
            green_y_speed = -green_y_speed
        if posgreen[2] >= 1000 or posgreen[0] <= 0:
            green_x_speed = -green_x_speed

        #redball
        canvas.move(redball, red_x_speed, red_y_speed)
        posred = canvas.coords(redball)
        if posred[3] >= 1000 or posred[1] <= 0:
            red_y_speed = -red_y_speed
        if posred[2] >= 1000 or posred[0] <= 0:
            red_x_speed = -red_x_speed

        #collision example
        x = posgreen[2]
        y = posgreen[0]
        z = x - y
        print(x,y, z )
        print(posgreen[2] - posgreen[0])
        root.update()
        time.sleep(0.01)
        pass

balls()


root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...