首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Glowscript和VPython中的菜单

Glowscript和VPython中的菜单
EN

Stack Overflow用户
提问于 2019-08-20 10:53:41
回答 1查看 210关注 0票数 0

对于一个学校项目,我和我的一个朋友目前正试图对我们的太阳系进行模拟。我们使用的平台是Glowscript,我们正在使用VPython。我们已经为我们整个太阳系设定了程序,包括所有的行星,太阳和它们之间的力量。

现在,我们试图添加一些额外的,其中之一是一个菜单,用户可以选择一个星球。在我们的代码中,选定的对象(在代码中定义的行星或太阳)将被标记为“currentobject”。在此之后,用户可以使用滑块更改当前对象的质量。

在编程过程中出现了两个问题。第一种情况是,我们无法将对象定义为当前对象,以便以后可以更改其质量。可悲的是,我们在代码中找不到问题。

第二个问题是,我们无法在Glowscript中增加一个以上的模拟。我们已经编程了一个滑块功能,以改变模拟‘速率’(速度),然后菜单和滑块改变质量根本没有出现。

代码语言:javascript
复制
def M(m):
    global col, currentobject
    currentobject.visible = True
    obj = m.selected
    if obj == 'Sun':
        currentobject = sun
    elif obj == "Mercury":
        currentobject = mercury
    elif obj == "Venus": 
        currentobject = venus
    elif obj == "Earth": 
        currentobject = earth
    elif obj == "Mars": 
        currentobject = mars
    elif obj == "Jupiter": 
        currentobject = jupiter
    elif obj == "Saturn": 
        currentobject = saturn
    elif obj == "Uranus": 
        currentobject = uranus
    elif obj == "Neptune": 
        currentobject = neptune
    currentobject=m.selected
    print(m.selected,m.index)


menu(choices=['Choose an object', 'Sun', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'], bind=M)
scene.append_to_caption('\n\n')


def setmass(b):
    wt.text = '{:1.2f}'.format(b.value)
sl = slider(min=0.1, max=10, value=0.1, length = 1000, bind=setmass)  
wt = wtext(text='{:1.2f}'.format(sl.value))


#mainloop 

while (True):  


    rate(10)

    currentobject.mass=currentobject.mass*sl.value

最后,我们模拟的用户应该能够在下拉菜单中选择行星或太阳。在此之后,用户应该能够改变所选物体的质量(使用滑块),并在上面的模拟中看到效果(其他行星的轨道发生变化,因为它们对当前物体更有吸引力)。

错误消息:

TypeError:无法读取未定义属性的“质量”

EN

回答 1

Stack Overflow用户

发布于 2019-08-26 20:31:02

您的代码片段还不够完整,无法确切地知道问题所在,但我注意到,对M的第一个调用具有currentobject.visible = True,但是currentobject还不存在,因此您将得到一个错误。类似地,在循环中引用currentobject.mass,但currentobject还不存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57572033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档