在python中创建多个对象

 收藏

我是python新手,但是有Java经验。我正在创建一个弹跳球程序,该程序通过for循环创建大量的弹跳球。感谢您的帮助!谢谢

import time
from random import randint

x0 = 10.0
y0 = 10.0
ball_diameter = 15

from tkinter import *
window = Tk()
canvas = Canvas(window, width=500, height=600, bg='white')
canvas.pack()

for i in range(1, 50):
    i=i+1
    x = [randint(1,400)]
    y = [randint(1,400)]
    vx = randint(1,20)
    vy = randint(1,20)
    x_min = 0.0
    y_min = 0.0
    x_max = 500.0
    y_max = 600.0

    for t in range(1, 5000):
        new_x = x[t-1] + vx
        new_y = y[t-1] + vy
        if new_x >= x_max or new_x <= x_min:
            vx = vx*-1.0
        if new_y >= y_max or new_y <= y_min:
            vy = vy*-1.0  
        x.append(new_x)
        y.append(new_y)
        canvas.create_oval(x[t], y[t], x[t]+ball_diameter, y[t]+ball_diameter, fill='blue', tag='ball')
        canvas.update()
        time.sleep(0.1)
        canvas.delete('ball')

    window.mainloop()
回复
  • 炸了SM 回复

    您能具体指出您真正需要帮助的地方吗?

  • eet 回复

    抱歉,我的程序模糊不清,但到目前为止,我的程序只能创建一个球。我希望它根据第一个for循环创建多个弹跳球。是否可以通过使用这样的for循环在python中创建多个“对象”?如果没有,我如何仅通过定义一个以上的方法来创建10个弹跳球。

  • baut 回复

    您可以在Ball对象本身,列表或字典中保存每个球的运动状态。然后,您将拥有after事件,您可以将其设置为调用移动更新功能,例如0.05秒后。