java吧 关注:1,230,814贴子:12,692,046

hello,从一个游戏的状态机来说一下写代码是一件多么开心的事情

只看楼主收藏回复

状态组:

单个状态

状态组里的update方法


IP属地:安徽1楼2021-10-26 09:39回复
    这次用一局剧本杀游戏为例,梳理一下整个游戏的状态切换,以及每个状态可以处理的指令
    1、等待(进入指令,准备就绪指令)
    玩家一开始会进入一盘游戏,这时候玩家可以准备就绪,
    当所有玩家准备就绪之后,跳转到游戏开始状态。
    2、开始(玩家选取角色指令)
    游戏开始状态时,玩家只有30s的时间来了解,故事背景,以及角色,并选取角色,
    超时之后,则自动为玩家设定角色。跳转到寻找线索的状态。
    3、寻找线索(进入场景指令、搜索线索指令,放弃线索指令、完结指令)
    寻找线索的过程中,玩家可以进入不同的场景,并且在场景中搜索线索,因为玩家持有的线索是有上限的,所以玩家也可以放弃当前的 线索,重新获取,当玩家觉得已经持有足够的线索之后,就可以点击完结,
    当所有玩家都完结,或者超过10分钟,则跳转到下个讨论的状态。
    4、讨论(说话指令,完结指令)
    玩家在该状态开始讨论自己掌握的线索,并根据线索来指证谁是凶手。当玩家确认无误之后,便可以点击完结指令。所有玩家都完结,或者超过10分钟,则跳转到一个“一句话总结”的状态。
    5、总结(说话指令)
    该状态中,玩家只有一次陈述的机会,然后说完之后,就自动把玩家的完结状态置为true。
    所有玩家陈述完毕之后,跳转到游戏结束状态。
    6、游戏结束(打分指令,退出指令)
    当游戏结束的时候,向玩家展示剧本的完整剧情,以及玩家可以根据每个人在游戏中的表现予以评分,对于剧本设计也可以评分等等。


    IP属地:安徽2楼2021-10-26 09:55
    回复
      我们把游戏中的状态细化之后,写代码就轻松多了。(这不比增删改查有趣得多?)


      IP属地:安徽3楼2021-10-26 09:56
      回复
        解释一下状态组(StateGroup)、状态(State)的关系.
        状态组管理各个状态的实例、并且指定好状态之间的调用行为(update方法)。
        StateContext属于状态中的上下文,简单来说,可以理解成状态从一开始到结束产生的一些数据。
        比如玩家、场景、角色等


        IP属地:安徽4楼2021-10-26 10:00
        回复
          其实做什么事情,都是有对象、属性、行为。
          写代码也一样,用户、数据、指令。


          IP属地:安徽5楼2021-10-26 10:02
          回复
            没人的嘛?


            IP属地:安徽6楼2021-10-26 10:03
            回复
              贴贴


              IP属地:江西来自Android客户端7楼2021-10-26 10:09
              回复


                IP属地:广东来自Android客户端8楼2021-10-26 10:42
                回复
                  状态模式是吧


                  IP属地:江苏来自Android客户端9楼2021-10-26 10:54
                  回复
                    好久没在java吧看到分享代码的了


                    IP属地:广东来自Android客户端10楼2021-10-26 10:59
                    收起回复
                      写好了代码怎么运行游戏?


                      IP属地:广东来自Android客户端11楼2021-10-26 11:11
                      收起回复

                        玩家进入游戏的代码,如果有什么不清楚的可以在该楼沟通。


                        IP属地:安徽12楼2021-10-26 11:12
                        回复
                          强!喜欢写代码


                          IP属地:北京来自Android客户端13楼2021-10-26 11:53
                          回复
                            写自己感兴趣的东西就会开心,上班天天让你curd这谁顶得住


                            来自Android客户端14楼2021-10-26 12:03
                            收起回复