How to make objects avoid one another

2024-04-25 06:21:03 发布

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

我有一组随机放置的物体。维扎德有这个接近传感器/目标功能,我用它为每辆车分配一个传感器,也使每辆车成为一个目标。但是,当我为每个传感器/目标交互创建一个动作时,所有的汽车都会以相同的方式做出反应(这是意料之中的,因为我已经使每辆汽车都成为自己的传感器和目标)。你知道吗

这是我创建职位列表后的代码。在这里,我创建了一个3D汽车阵列:

obs_cars_array = []
for c_set in obs_pos: # for every coordinate set in the list of positions
    obs_car = viz.add('mini.osg') # assign a car avatar
    obs_car.setPosition([c_set[0], 0.8, c_set[1]]) # set the position of each car avatar
    obs_cars_total.append(obs_car) # create array of 3D car objects

然后在同一代码块中创建传感器和目标:

    obs_car_target = vizproximity.Target(obs_car) # make each car a target
    manager.addTarget(obs_car_target) # add it to the target manager
    sensor = vizproximity.addBoundingSphereSensor(obs_car,scale=1) # make same car a sensor
    manager.addSensor(sensor) # update sensor manager

我需要找到一个解决方案,可以帮助我防止阵列中的任何一辆车过于靠近另一辆车。你知道吗

有什么想法吗?你知道吗


Tags: ofthe代码target目标manager传感器sensor