如何用状态模式改写星际争霸游戏,实现英雄状态自由切换?

2026-04-01 09:040阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计911个文字,预计阅读时间需要4分钟。

如何用状态模式改写星际争霸游戏,实现英雄状态自由切换?

原文示例:本文字例讲述了PHP设计模式之状态模式。分享给大众供大家参考,具体如下:星际的一些生物会有不停的状态,例如坦克可以架起起来,机枪可以打起刺激素,甚至还有一些被动的。

本文实例讲述了php设计模式之状态模式。分享给大家供大家参考,具体如下:

星际的一些兵种会有不止一种状态,比如坦克可以架起来,机枪兵可以打兴奋剂,甚至还有一些被动的,比如被虫族女王喷洒绿色液体后,敌人的行动变慢。

如果按照一般的思路,每次我们对一个小兵进行操作的时候,比如一辆坦克,我们都要用if判断他的状态,这样代码中会有很多的if,else或者swith。

不过我们可以发现,我们需要的是他在某个状态下的行为,如果把这些行为按照状态封装起来,就可以减少大量的判断。

待解决的问题:封装坦克的状态,让状态自己去控制行为。

思路:把状态作为属性,兵种类本身只控制状态的变化,具体的行为由状态类定义。

阅读全文

本文共计911个文字,预计阅读时间需要4分钟。

如何用状态模式改写星际争霸游戏,实现英雄状态自由切换?

原文示例:本文字例讲述了PHP设计模式之状态模式。分享给大众供大家参考,具体如下:星际的一些生物会有不停的状态,例如坦克可以架起起来,机枪可以打起刺激素,甚至还有一些被动的。

本文实例讲述了php设计模式之状态模式。分享给大家供大家参考,具体如下:

星际的一些兵种会有不止一种状态,比如坦克可以架起来,机枪兵可以打兴奋剂,甚至还有一些被动的,比如被虫族女王喷洒绿色液体后,敌人的行动变慢。

如果按照一般的思路,每次我们对一个小兵进行操作的时候,比如一辆坦克,我们都要用if判断他的状态,这样代码中会有很多的if,else或者swith。

不过我们可以发现,我们需要的是他在某个状态下的行为,如果把这些行为按照状态封装起来,就可以减少大量的判断。

待解决的问题:封装坦克的状态,让状态自己去控制行为。

思路:把状态作为属性,兵种类本身只控制状态的变化,具体的行为由状态类定义。

阅读全文