142416sshjps4ji4o464hi.png
  首先是通过接口定义通用状态机接口,然后定义了单间的接口。这种方式统一让所有的状态实现三个函数,这三个函数分别对应切入状态,在状态中,退出状态,需要执行的逻辑分别放在这三个函数里执行,通过这样的分割,状态很容易扩展,也不会混乱。具体代码实现,请看下面说面里面github的地址。

  在StateManager是专门管理角色状态的管理类,每个角色对象包含一个状态机管理类。

  总结:

  状态机的模型是非常简单,但并不是每个人都能设计好的状态机。因为好的状态机不仅需要对程序的把握要比较到位,同时需要对整个业务的理解比较到位。好的状态机使程序变的更加简洁,易扩展,容易查找bug,还非常稳定。坏得状态分割只会让程序晦涩难懂。

  说明:

  1、通过两个状态机实现了两个简单的猜数打怪兽游戏。

  2、所有完整程序都可以到这个地址查看,下载,修改。

  3、整个代码都是通过C++ 完成的,编译环境是osx 10.10 + LLVM 6.0 , C++使用 -std=c++1y。程序写了makefile,所以如果在其他平台只需要简单修改下makefile就可以快乐的玩耍了。

  相关阅读游戏开发之状态机的实现与优化

锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛