python中移动矩形的乘法(tkinter)

2024-06-03 16:08:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个问题:

  1. 我想做几个矩形,随机移动。我现在正处在 可以用一个矩形来做,但我不知道如何将它们相乘

  2. 我是一个初学者,所以我复制了这个例子并修改了它,但我不知道为什么每次都要写“self”和“init”。以这种方式命名这些参数似乎很常见

这两个问题我都查了好几遍,但都没有找到满意的答案

代码如下:

from tkinter import *
from tkinter.ttk import *
from random import *

class simulation: 
    def __init__(self, anzahl, master = None):

        self.master = master
        self.canvas = Canvas(master, width= 2736, height= 1824)
        self.rectangle = self.canvas.create_rectangle(500, 380, 515, 395, fill = "black") 
        self.canvas.pack()

        self.movement()

    def movement(self):
        self.canvas.move(self.rectangle, randint(-10,10), randint(-10,10))
        self.canvas.after(100, self.movement)

if __name__ == "__main__":
    master = Tk()
    master.title("Simulation")
    simulation = simulation(master)

mainloop()


Tags: fromimportselfmasterinittkinterdef例子
1条回答
网友
1楼 · 发布于 2024-06-03 16:08:46

也许这会帮助你,使每个球员和画布包装的对象,以避免隐藏其他球员

from tkinter import *

from random import *

class simulation: 
    def __init__(self, master , canvas , color):
        self.master = master
        self.canvas = canvas
        self.rectangle = canvas.create_rectangle(500, 380, 515, 395, fill=color)


    def movement(self):
        canvas.move(self.rectangle, randint(-10,10), randint(-10,10))
        self.canvas.after(100, self.movement)

if __name__ == "__main__":
    master = Tk()
    canvas = Canvas(master, width=2736, height=1824)
    canvas.pack()
    master.title("Simulation")
    player1 = simulation(master, canvas,"red")
    player2 = simulation(master,canvas, "black")
    player1.movement()
    player2.movement()


    mainloop()

相关问题 更多 >