(这个问题与任何类型的开发相关,而不仅仅是游戏)。
我对 Java 游戏开发还比较陌生。
我制作了许多游戏,并开始注意到在每个项目开始时,我几乎总是重写非常相似的代码和类。
例如:游戏循环的结构、所有游戏实体的基类、获取键盘输入并相应移动角色的机制等。所有这些在项目之间都非常相似(但不相同) .
我意识到处理这个问题的最佳方法可能是创建一个库来存储我经常需要重写的所有代码。
问题是,我真的不知道从哪里开始。
库是包含类集合的 JAR(这准确吗?)。如果是这样,我就不能只创建一个 BaseGameEntity
类并将其放入库中以在我的游戏中使用。
这是因为这个类与我制作的游戏之间非常相似,但并不完全相同。我仍然总是需要更改它的一些代码。所以我不能把它锁在库中。
从键盘获取输入来移动角色的机制也是如此。我可以将其封装在一个类中并将其放入库中,但同样,每个游戏的情况都不相同。我仍然需要调整它的代码,我不能重复使用完全相同的代码。
常见的解决方案是什么?对于这些(我认为)常见情况是否有通用的“策略”?或者开发人员是否使用他们的常识和已知的设计模式来实现这一目标,而无需任何特定的“策略”?
编辑:我应该学习一些常见的设计模式来帮助我构建一个良好的可重用库吗?
最佳答案
如果您正在使用 Java 进行任何类型的开发,我建议您学习一些设计模式。我发现书籍对于非学术程序员(即那些没有获得计算机科学学位的程序员)来说是无效的,所以你最好的选择是上网。这是我仍在使用的页面的链接:
http://www.fluffycat.com/Java-Design-Patterns/
基本上,您现在面临的问题已经得到解决,尽管是以一般的方式,并且在某个地方有这些解决方案的集合。您的挑战是确定您要在自己的代码中解决的问题,然后选择最能解决您的问题的模式。这需要的不仅仅是名义上熟悉这些模式。
有时,当您刚接触编程时,查看诸如设计模式之类的东西可能会令人畏惧,因此临时解决方案是(无论如何,这是编程中必须做的练习)在代码中采用通用功能并打破它分解为单独的、定义良好的类(查找 OOP 内聚性)。例如,如果您编写的类有一个接受 String 并以某种方式格式化它的方法,您可能希望创建一个新类,仅通过公共(public)静态方法来执行此操作,而不是将单一用途的代码保留在内部你原来的类(class)。同样的事情也适用于从属性文件读取数据的方法,或处理时间的方法等。这将是创建可重用的包或启动框架的第一步。我们的目标是,如果您将代码分解成足够小的片段,它们就可以在任何地方使用。
关于java - 如何创建一个存储常用重用代码的库 - 需要根据项目进行调整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22337045/