加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – OO游戏设计问题

发布时间:2020-12-15 01:02:43 所属栏目:Java 来源:网络整理
导读:我正在用 Java编写一个简单的游戏,但我正在尝试用一个漂亮干净的设计做到’正确’而且没有黑客攻击. 我有两个类GamePanel接收点击和按键,模型包含所有实体并负责更新.模型需要知道用户鼠标的位置,但我无法决定采用“正确”的方法. 模型和内部的每个实体是否
我正在用 Java编写一个简单的游戏,但我正在尝试用一个漂亮干净的设计做到’正确’而且没有黑客攻击.

我有两个类GamePanel接收点击和按键,模型包含所有实体并负责更新.模型需要知道用户鼠标的位置,但我无法决定采用“正确”的方法.

模型和内部的每个实体是否应该保持对GamePanel的引用,或者只是缓存最后已知的鼠标位置并定期从GamePanel接收更新.使用第一个选项创建模型时,需要为GamePanel提供引用,第二个鼠标位置将作为参数发送到World.update()方法.

这些解决方案似乎都不优雅,所以我想知道是否有一种“正确”的方式来做到这一点,我已经错过了.

谢谢,
本.

解决方法

在我看来,这取决于你的课程如何互动.鼠标位置的变化是否触发了Model类中的实体?或者Model类是否独立于GamePanel并且仅适用于Mouse位置的当前值?

如果后来和那个案子我同意杰夫在我面前所说的话.在创建它时将GamePanel上的句柄传递给Model类,并让每个实体在需要时使用句柄来访问鼠标位置.这样就总是使用更新的鼠标位置.

如果前者我建议使用Observers让Model类知道鼠标位置值何时发生了变化.然后Model类可以使用相同的设计(即让Model类始终在GamePanel类上有句柄)并访问GamePanel中的当前值.

总结我对你的问题的答案,我认为只有逻辑和符合OO概念才能让GamePanel保持鼠标位置的值,让其他类使用GamePanel实例访问该信息.

谢谢,罗汉.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读