#这部分写行人上下逻辑#
预期效果: ①车到达下一批人②车到达排队的人上车
Model上下车 -下半部分视频
一、行人产生——随机去某个服务排队——等车来了后上车
1、创建目标线
2.编写上车行人逻辑
在main界面中创建如下逻辑
并创建一个行人智能体,命名为Pedestrian (动画随便,我这里是默认第一个)
再到MyAgent中创建如下逻辑,以及delay_time变量:
具体设置如下:
这样就可以实现行人产生到行人排队等候,运行看效果如下:
接下来是实现行人上车过程
初步设想:只要在车进入delay状态的时候,把线服务的时间从无限大改成指定值,离开该状态时改回无限大即可。但是运行后发现有些行人虽然车开走了但还是会继续进入,效果不理想。
进一步尝试创建了一个集合,当行人进入队列时添加进行人集合,离开或者取消时移出集合。并对线服务时间进行设置。
在MyAgent中创建集合collection,设置元素类为行人
在线服务中下对行动进行设置。
回到main界面,点击delay
便完成列车到达时行人的上车行为。(粘贴视频还得先上传很麻烦 这里不展示了)
3. 下车逻辑
下车很简单,类似上车的反向,是车到达后,从myagent中线服务里产生行人,行人随机走到两个出口。
行人逻辑为:行人生成——跳出封装——去目标出口——消失:
1、main中添加
2.myAgent中生成
MyAgent智能体中具体设置如下
※我们需要记录行人产生在哪个MyAgent中 所以再pedestrians智能体中加一个参数(myAgent)
行人得在车来后再释放,所以使用inject函数释放行人,后期在delay模块中调用inject函数释放形容
main界面中具体设置如下:
因为我们想要得到行人下车后随机去两个出口任意一个,所以需要先对出口创建一个集合
结束,运行效果如下(逃不过传视频。。。)
Model上下车 -下半部分视频