【发布时间】:2010-10-08 00:05:51
【问题描述】:
我是一名大学新生,正在攻读计算机科学学位...过去几年我编写了很多程序,但最近我对组织代码、设计模式、语言差异的理论思想有了更多的了解等。
我有一个 Java 课程,因此我放弃了 C++ 研究/开发,转而使用 Java 和 JOGL(Java OpenGL)。太棒了!但这不是重点。
我想做一个小型角色扮演游戏,但这个问题确实适用于任何类型的游戏。您如何以结构化的方式组织游戏对象,例如模型-视图-控制器模式?它看起来是一个了不起的模式,被广泛使用并且很有意义,但是我在弄清楚如何实现它时遇到了麻烦。
例如,我需要跟踪一个 GL 对象以绘制到屏幕上。我必须有实现 MouseListener、MouseMotionListener、MouseWheelListener 和 KeyListener 的类(或一个类,一个多合一的输入管理器)。而且我必须将我的游戏数据放在所有这些不同的类都可以访问和修改它的地方;如果有人按下键盘上的按钮,输入管理类需要以某种方式执行该键映射到的操作;当需要绘制一个框架时,图形类需要找到一种方法来循环遍历所有不同的“事物”并将它们全部绘制出来。
还有我最大的问题,GUI;它与这一切有什么关系?它有点像输入,但不完全是,它需要从实际游戏模拟中设置和获取数据片段......而且更复杂的是,如果我决定尝试添加网络,它(类似于 GUI ) 还需要访问大量数据以进行修改和读取...
哦,我只是一头雾水。我不知道如何让所有这些以面向对象的方式协同工作......编写明显符合模式的东西很容易,但是当你有大量发生的事情都与一个游戏循环相关时,相互修改还有游戏数据等等,……我什至都不知道了。也许我只是在做一个比实际更大的交易。
有没有其他人有这种感觉?请说明我的情况,这样我就可以少花时间担心和不知道从哪里开始!
编辑:找到了一个很好的图表,可以帮助我弄清楚这一切... 来源:(当心,PS 文件!)http://www.tucs.fi/publications/attachment.php?fname=TR553.ps.gz
Edit2:我也喜欢这个人对他如何计划他的 MVC 游戏的解释:http://interactivesection.wordpress.com/2007/11/19/dum-de-dum-drum-my-first-mvc-game-development/
Edit3:另一篇很棒的文章! http://dewitters.koonsolo.com/gamemvc.html
【问题讨论】:
标签: java oop design-patterns model-view-controller