tkinter控件不移动

-2 投票
1 回答
56 浏览
提问于 2025-04-13 01:56

我有一个小工具,如果我站在坐标100的位置,而它在坐标200的位置,它应该移动到100的位置,也就是跟着我走。

我打印了它的坐标,像你在代码中看到的那样,坐标是正确的,但这个小工具的图片本身并没有移动,我看不见它。

我有一个移动的函数,每当我移动的时候,它会调用hzom和zombie这两个函数,我在代码开始的时候也调用了它们。

food.label是玩家的标识。

def zombie():

    if list3[0]>=Food.label.winfo_x():
        while list3[0]>=Food.label.winfo_x():

            print("fdkfj")
            list3[0]=list3[0]-0.5
            parent1.move(w,-0.05,0)
            print(list3[0])
            print(list3[1])
    if list3[0]<=Food.label.winfo_x():
        while list3[0]<=Food.label.winfo_x():
            print(list3[0])
            print(list3[1])
            print("fdkfj")
            list3[0]=list3[0]+0.5
            parent1.move(w,0.05,0)
def hzom():
    global parent1
    parent1=Canvas(wind,width = 50,height = 50)
    parent1.pack()
    global oval12
    global w
    w =parent1.create_oval(0,0,50,50,fill = "blue",tags="oval12")
    global list3
    list3 = [1300, 640]
    parent1.place(x=list3[0],y=list3[1])
    print("d")

hzom()
zombie()

相关问题:

1 个回答

0

对我有效的方法是只移动画布的位置,而不是小球。

        global parent1
        parent1 = Canvas(wind, width=50, height=50)
        global oval12
        global w
        w = parent1.create_oval(0, 0, 50, 50, fill="blue", tags=("oval12",))
        global list3
        list3 = [1300, 640]
        parent1.place(x=list3[0], y=list3[1])
        print("d")

    def zombie():
        if list3[0] >= Food.label.winfo_x():
            while list3[0] >= Food.label.winfo_x():
                print("fdkfj")
                list3[0] = list3[0] - 0.05

                parent1.place(x=list3[0], y=list3[1])

                print(list3[0])
                print(list3[1])
                wind.update()

        if list3[0] <= Food.label.winfo_x():
            while list3[0] <= Food.label.winfo_x():
                print(list3[0])
                print(list3[1])
                print("fdkfj")
                list3[0] = list3[0] + 0.05

                parent1.place(x=list3[0],y=list3[1])
                wind.update()

    hzom()
    zombie()

撰写回答