当前位置:首页 > 数据库 > 正文

b s模式和mvc模式,mvc模式的工作原理

b s模式和mvc模式,mvc模式的工作原理

大家好,b s模式和mvc模式相信很多的网友都不是很明白,包括mvc模式的工作原理也是一样,不过没有关系,接下来就来为大家分享关于b s模式和mvc模式和mvc模式的工...

大家好,b s模式和mvc模式相信很多的网友都不是很明白,包括mvc模式的工作原理也是一样,不过没有关系,接下来就来为大家分享关于b s模式和mvc模式和mvc模式的工作原理的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

如何在Unity中实现MVC模式

在Unity游戏的开发当中,我并没有刻意地采用MVC框架,因为不像网站开发那样,Model,View,Controller在游戏这个领域里还没有很清晰的定义。究其原因,可能是由于不同游戏类型本身的软件架构可以相差很远,而且游戏里面的Object之间有大量的交互,所以垂直的MVC似乎不是十分应景。

然而,某种程度的分离代码逻辑是必要的,可以提高代码的可维护性和重用性。下面我说说自己的一些经验。

假设我们在做一个马里奥:对于游戏里的角色,我会采用这样一个结构。CharacterManager,它的作用是包含这个角色的Controller(s),并提供一个黑板(Blackboard)[1]。Controller,利用ReusableModels来处理角色在这个游戏中的某一状态的逻辑。ReusableModel,是一个虚的概念,并不是一个父类,通常这类Model都负责某一个特定的功能,可以重复利用,可看做游戏引擎的延伸。我会将CharacterManager和ReusableModel继承MonoBehavior,这样我们就能够直观地知道这个角色是什么类型的Character,并且可以利用inspector调节Model的参数。

怎么将上面的架构应用在马里奥身上呢:作为CharacterManager,我们可以采用FiniteStateMachine或者BehaviorTree。一个好处是它们都天然地提供了“Controller”。例如FiniteStateMachine,它的每一个State都可以看作一个Controller。而BehaviorTree里面的ActionNode,也可以看作是一个Controller。

在每一个Controller里面,都会有指针指向一些ReusableModel。例如下图MoveState可以有一个MoveMotor,专门来实现GameObject的移动,而Sprite则封装GameObject的表现,如动画、旋转、位置等等。这些ReusableModel通常都提供丰富的参数可供调整,可以用于不同游戏当中。

用户输入和游戏里面的消息,则会暂存在CharacterManager里面的Blackboard里,供CharacterManager使用,让它决定是否需要更换Controller。例如马里奥里面我按左键,往左行动的信息会写在FSM的Blackboard里面,然后通过FSM的State转换机制[2],从IdleState转换到MoveState。这样的好处是,往左的信息可以从InputManager(图中没给出)那里得来,也可以从EnemyAIManager(图中没给出)那里得来。这样,一个类型(如拥有Idle,Move,Jump等状态)的FSM,就可以用在所有类似的角色身上,无论是玩家控制的还是AI控制的。

最终在Unity里面会是这样一个情况,FSM,Sprite,MoveMotor都作为Component,而Controllers则包含在FSM里面。

以上方案虽然并不严格,但是在一定程度上提高了代码的可复用性和可维护性。例如现在我基本都把MoveMotor,Sprite等Model写好,新项目就直接扔进来就能用;MoveState,IdleState,JumpState等一些在平台游戏里常用的状态封装好,留出一些可调参数,例如状态间的转换。

[1]Blackboard的本质是一个Dictionary。[2]比较原始的FSM会将State转换直接放在State里面,但这样大大降低了State的可复用性。因此可以尝试将State的转换作为一个可调参数。一些可视化的FSM的原理也是这样,利用连线将两个State链接起来,然后通过定义一些转换的条件。

bs架构和springboot的区别

区别是概念不同,结构模式不同

SpringBoot:

是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终以Java应用程序进行执行。

B/S模式一般指B/S结构。

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

最新文章