0
点赞
收藏
分享

微信扫一扫

仿真程序开发思路

_铁马冰河_ 2022-03-31 阅读 52
pythonui

当开发大型仿真程序时,容易出现对象的相互耦合,从而造成维护困难。
一种可行的思路是利用状态机,进行对象以及对象之间交互的解耦。
具体步骤如下:

  1. 利用pygame的精灵类定义仿真的智能体单元,主要是其位置、速度、速度角度等
  2. 利用多重继承的方式,让精灵类继承状态机的类,StateMachine。为精灵定义多种状态,以及状态之间的迁移,进入、退出状态、执行迁移需要的操作
  3. 在任务类中完成多种精灵类对象的交互。
  4. 在任务类中创建精灵对象后,在事件处理模块和碰撞检测模块分别进行状态迁移条件的定义和触发
  5. 利用pygame的自定义事件功能,定义通用的精灵对象间消息传递事件类型,通过类之间传递消息,触发该事件类型,并与状态迁移相关联,从而解决所有类型的迁移触发。

状态机参考:https://pypi.org/project/python-statemachine/

from statemachine import StateMachine, State

class TrafficLightMachine(StateMachine):
    green = State('Green', initial=True)
    yellow = State('Yellow')
    red = State('Red')

    slowdown = green.to(yellow)
    stop = yellow.to(red)
    go = red.to(green)
举报

相关推荐

0 条评论