使用VPython如何调用类球体位置?

使用VPython如何调用类球体位置?,python,vpython,Python,Vpython,通过使用VPython,我能够通过调用同一个类,使我正在处理的程序生成多个球。我还可以让球在生成时出现在选定的随机范围内(跨越x、y和z) 然而,我目前在如何从我的循环中调用pos/position函数上遇到了难题,因为我想让球移动 请看下面我的代码 如果我调用Ball.pos,它会声明为未定义,但是如果我通过self.position放置我的位置,则只生成一个球,因为它们没有从球体细节下引用 from visual import * from random import * scene.tit

通过使用VPython,我能够通过调用同一个类,使我正在处理的程序生成多个球。我还可以让球在生成时出现在选定的随机范围内(跨越x、y和z)

然而,我目前在如何从我的循环中调用pos/position函数上遇到了难题,因为我想让球移动

请看下面我的代码

如果我调用Ball.pos,它会声明为未定义,但是如果我通过self.position放置我的位置,则只生成一个球,因为它们没有从球体细节下引用

from visual import *
from random import *
scene.title = "Multi Balls"

wallBm = box(pos=(0,-6,0), size=(12.2,0.1,12.1), color=color.blue, opacity=0.4)

vscale = 0.1
deltat = 0.005
t = 0
scene.autoscale = False
i = 0

totalBalls = 10

class Ball:
    def __init__(self):
        self.velocity = vector(0,5,0)
        #vel sample ([5,10,15,20,25],3)
        sphere (pos=(randrange (-6,6),randrange (-6,6),randrange (-6,6)), radius=0.5, color=color.cyan)

while True:
    rate(100)
    if i < totalBalls:
        Ball()
        i = i + 1

    t = 5 + deltat
来自可视导入的
*
从随机导入*
scene.title=“多球”
wallBm=框(位置=(0,-6,0),大小=(12.2,0.1,12.1),颜色=颜色。蓝色,不透明度=0.4)
vscale=0.1
deltat=0.005
t=0
scene.autoscale=False
i=0
总球数=10
班级舞会:
定义初始化(自):
自速度=矢量(0,5,0)
#vel样本([5,10,15,20,25],3)
球体(位置=(随机范围(-6,6),随机范围(-6,6),随机范围(-6,6)),半径=0.5,颜色=color.cyan)
尽管如此:
费率(100)
如果我想:
Ball()
i=i+1
t=5+deltat

尝试从帧继承:

class Ball(frame):
    def __init__(self, pos=(randrange (-6,6),randrange (-6,6),randrange (-6,6))):
        frame.__init__(self,pos=pos)
        self.velocity = vector(0,5,0)
        sphere(frame=self,pos=pos,radius=0.5, color=color.cyan)
listOfBalls=[]
while True:
    rate(100)
    for i in range(totalBalls):
        listOfBalls.append(Ball())
现在再试一次! 您可以通过调用
球列表[3].pos
来调用每个球的位置。我希望这有帮助