我写了一个 matplotlib 动画程序是这样的:
def animate(frame):
observation = env.render()
action = RL.choose_action(str(observation)) # TODO
action = [random.randint(0, 4) for i in range(ROBOT_NUM)] # TO BE DELETE TODO
env.step(action)
observation_ = env.render()
reward = env.reward
RL.learn(str(observation), action, reward, str(observation_)) # TODO
for i in range(TARGET_NUM):
patchs_target[i].center = (env.targets[i].x, env.targets[i].y)
for i in range(ROBOT_NUM):
patchs[i].center = (env.robots[i].x, env.robots[i].y)
patchs_inner[i].center = (env.robots[i].x, env.robots[i].y)
return patchs + patchs_inner + patchs_target
Run Code Online (Sandbox Code Playgroud)
.....
anim = animation.FuncAnimation(fig, animate, init_func=init,frames=1, interval=UPDATE_INTERVAL, blit=True)
Run Code Online (Sandbox Code Playgroud)
现在我想animation.FuncAnimation通过判断animate函数中的条件来停止。如if reward …