在java中设计项目

时间:2012-03-01 00:50:50

标签: java project

我不确切知道如何设计项目。这是我在计算机科学系的第一年。我还在学习很多关于Java的信息,比如继承,多态,抽象类,接口等等。我对这些讲座非常好奇,我很乐意学习它们。事实上,我没有错过这些讲座中的任何一点,我得到了很好的。但没有人教我如何设计项目,我们应该在学校的最后设计一个像样的Java项目。

我和我的3个同学决定开一个新游戏。它只用一个球,球有两种颜色可变。另外两名球员的颜色与球的颜色相同。当球处于一个球员的颜色时,该球员将能够移动球并尝试得分到另一个球员的目标。这些是我们的想法的基本逻辑,我们可以为这个游戏添加一些新的设施和选项。我们非常愿意实现这个项目。但是......虽然我们倾听并从我们的讲座中学习,但我们对于逐步设计这个项目感到困惑。我刚试图证明我们项目的逻辑。同时,我们仍在学习GUI,但我们正处于GUI的最初阶段。所以我想了解为了设计和制作这种项目我们必须遵循什么样的方式。我只想了解技巧和快捷方式,并充分利用我们对类层次,抽象类,超类,重写等方面的了解。(我们对这些术语知之甚少但只是不知道如何使用它们来设计项目)。如果你能指出一些关于这些的信息,我会非常高兴并且能够改变我的观点。这将有助于我们的进步。谢谢!

2 个答案:

答案 0 :(得分:3)

您可能希望看一下这个Java Pong Game - 它非常简单,并且包含一些您可以学习的源代码。

更一般的建议:

  • 你需要一些方法来展示游戏中发生的事情。在一个非常简单的游戏中显示屏幕的最简单方法可能是使用JPanel并覆盖它的paintComponent()方法来正确绘制游戏画面(例如在右侧x,y位置绘制玩家)
  • 您还需要一个游戏循环,它应该执行以下操作:
    • 读取玩家的任何输入
    • 更新游戏中对象的位置
    • 在JPanel上调用repaint(),以便重新绘制屏幕
    • 使用例如等待很短的时间Thread.sleep(30)睡眠30毫秒
    • 循环回到游戏循环的开始
  • 我建议从定义游戏逻辑(玩家,球等)的类中分离定义用户界面(框架,面板等)的类。理想情况下,游戏逻辑类不应包含任何与其显示或交互方式相关的代码。

对于这么简单的游戏,你实际上并不需要很多课程。我建议像:

  • App - 包含启动游戏的main(...)函数。它至少应该创建一个JFrame并在其中添加一个GamePanel,但是如果你愿意,你可以创建其他UI元素。你可以选择在这个类中实现你的游戏循环 - 在这种情况下,主方法应该在完成所有设置后调用它。
  • GamePanel(扩展JPanel) - 包含屏幕绘制逻辑,也可能检测鼠标移动
  • 游戏 - 代表整个游戏状态的类,包括球员和球的位置
  • 玩家 - 代表玩家的小班,有x,y坐标
  • 球 - 代表球的小类,有x,y坐标和dx,dy速度

答案 1 :(得分:0)

GUI并不适合制作游戏。 GUI(图形用户界面,Java中的Swing)是一组按钮和其他文本/图像内容,与您可以制作游戏的东西相反:3D渲染引擎,例如OpenGL(最常用)在java上,无论是在框架中还是通过低级库)。

您可以选择: 你可以决定做一个更简单的项目,例如一个控制台程序,但它将在GUI上运行,例如用于移动文件的GUI程序。

或者您可以学习OpenGL或类似的(JOGL for java)并制作该游戏! (JavaFX也可能有用,但我对此一无所知)

关于设计。

一般来说,你想要一个主要的"循环"将输出每一帧等的类 主要"循环" class应该从一个接口继承,该接口允许所有其他组件获取渲染粒子,时间计数器等。

然后你需要几个组件,一个用于球,一个用于任何其他物理对象(不要忘记让它们实现"物理"接口并将它们添加为"物理对象引用"在主类中,以便每帧计算它们的物理!),一个用于背景,一个用于用户输入。

您还可以添加多个其他人,每个人都会执行特定操作。