经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
关于游戏逻辑模式的观点----谁调用谁
来源:cnblogs  作者:小辉歌  时间:2019/1/24 9:26:46  对本文有异议

在这里是根据我个人做游戏过程中总结的观点(仍然着重声明,如果有人不同意,可以认为这是我写给自己看的)

在游戏中我们常常会遇到一个主要的问题,谁在修改谁,谁调用谁,当两个物体A和B发生交互从而触发功能function01,那么功能function01应该写在A中还是应该写B中,function01是由A来调用还是B来调用呢。

针对上面的问题,也许哪位大牛看了会马上提出各种设计模式,我也想过这个问题,但是无论看了多少遍设计模式,我还是不会,因为无论这些设计模式如何好,我仍然发现似乎这对于游戏似乎过于复杂了,游戏不像普通的应用程序编程,游戏中过多的继承,模式的约束反倒使得游戏编程变得过于复杂。经过大量的尝试之后我又回到unity引擎(你以为我在说什么,我一直围绕unity引擎讨论的)最初原旨,面向组件编程。什么各种模式都滚蛋吧,我又不是做引擎的,我只是想做游戏。似乎扯远了,上面这些只是我再次提醒自己而已,下面回到正题。

为了简单起见,我们以传送玩家为例:

如果玩家A要在B的位置传送到下一个场景的C点,我们有两种方式。一,玩家A设置触发器triggerA,如果触发在B的位置,并且如果按下I键,那么进行传送;二,B设置触发器,如果玩家A进入触发区域,并且按下I键,那么进行传送。这里使用使用那种方式呢?传送功能写在A中还是B中呢?或者还有更好的办法吗,首先我们讨论两种原则(我自己定的):

一,谁主动谁被动:很明显,玩家是主动,所以玩家应该是进行传送的人,所以传送功能的调用在玩家A身上进行。

二,单一功能原则:在这里我们玩家的主要功能是跑和跳,所以传送功能及相关参数不应该写在玩家身上,我们玩家应该是觉察到自己可以传送,那么调用可以调用的传送功能,B是传送位置信息点,所以应该将传送功能方法及相关参数写在B中,当玩家进入B的区域时,调用B的传送功能进行传送

原文链接:http://www.cnblogs.com/xiaoahui/p/10312455.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号