разработка проекта в Java - PullRequest
2 голосов
/ 01 марта 2012

Я не знаю точно, как разработать проект. Это мой первый год на факультете информатики. Я все еще изучаю много информации о Java, такую ​​как наследование, полиморфизм, абстрактные классы, интерфейсы и так далее. Мне очень любопытны эти лекции, и я хочу хорошо их выучить. На самом деле я не пропустил ни одного пункта в этих лекциях, и я получил их очень хорошо. Но никто не учит меня, как составить проект, и мы должны разработать достойный Java-проект в самом конце школы.

Я и мои 3 одноклассника решили сделать новую игру. В него играют только с одним мячом, а шар имеет два сменных цвета. Также два игрока имеют одинаковый цвет с цветами этого шара. Когда мяч имеет цвет одного игрока, этот игрок сможет переместить мяч и попытаться забить гол другому игроку. Это основная логика нашей идеи, и мы можем добавить некоторые новые возможности и опции для этой игры. Мы так хотим достичь этого проекта. Но ... хотя мы слушаем и учимся на наших лекциях, мы действительно не понимаем, как разработать этот проект шаг за шагом. Я только что попытался продемонстрировать логику нашего проекта. Между тем, мы все еще изучаем GUI, но мы находимся в самом начале GUI. Поэтому я хочу понять, какими путями мы должны следовать, чтобы спроектировать и сделать такой проект. Я просто хочу узнать об уловках и ярлыках и максимально использовать наши знания об иерархиях классов, абстрактных классах, суперклассах, переопределении и т. Д. (Мы знаем все об этих терминах, но просто не знаем, как их использовать для разработки проекта ). Если бы вы могли указать хотя бы небольшую информацию об этом, я был бы так счастлив и смог изменить свою точку зрения. И это будет способствовать нашему прогрессу. Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

Возможно, вы захотите взглянуть на эту Java Pong Game - она ​​довольно простая и включает в себя некоторый исходный код, который вы можете изучить.

Более общий совет:

  • Вам нужен какой-то способ показать, что происходит в игре. Вероятно, самый простой способ отобразить экран в очень простой игре - это использовать JPanel и переопределить его метод paintComponent (), чтобы правильно нарисовать игровой экран (например, нарисовать игроков в правильных местах x, y)
  • Вам также понадобится игровой цикл , который должен выполнять следующие действия:
    • Читает любой вклад от игроков
    • Обновление позиций объектов в игре
    • вызовите repaint () на JPanel, чтобы перерисовать экран
    • Небольшое время ожидания, например, с помощью Thread.sle (30), чтобы спать в течение 30 миллисекунд
    • Возвращает к началу игрового цикла
  • Я бы рекомендовал отделить классы, определяющие пользовательский интерфейс (рамки, панели и т. Д.) От классов, определяющих игровую логику (игроки, мячи и т. Д.). В идеале классы игровой логики не должны содержать код, связанный с тем, как они отображаются или взаимодействуют.

Для такой простой игры вам не нужно много классов. Я бы порекомендовал что-то вроде:

  • Приложение - содержит основную (...) функцию, которая запускает игру. Как минимум, он должен создать JFrame и добавить в него одну GamePanel, но вы можете создавать другие элементы пользовательского интерфейса, если хотите. Вы также можете реализовать свой игровой цикл и в этом классе - в этом случае основной метод должен вызывать его после завершения настройки.
  • GamePanel (который расширяет JPanel) - содержит логику рисования экрана, также, возможно, обнаруживает движение мыши
  • Game - класс, представляющий все состояние игры, включая местоположение обоих игроков и мяча
  • Player - маленький класс для представления игрока с координатами x, y
  • Ball - маленький класс, представляющий шар, с координатами x, y и dx, скорость dy
0 голосов
/ 01 марта 2012

GUI не очень подходит для создания игры. GUI (Graphical User Intreface, Swing in java) - это набор кнопок и другого текстового / графического содержимого, в отличие от того, с чем вы можете создать игру: движок 3D-рендеринга, такой как OpenGL (большинство обычно используется на Java, будь то в рамках или через библиотеки низкого уровня).

У вас здесь есть выбор: Вы можете либо решить сделать более простой проект, например консольную программу, но она будет работать в графическом интерфейсе, например, в программе графического интерфейса для перемещения файлов.

или вы можете научиться OpenGL или подобному (JOGL для Java) и сделать эту игру! ( JavaFX также может работать, но я не знаю много об этом)

Теперь о дизайне.

Как правило, вы хотите иметь основной класс "looping", который будет выводить каждый кадр и т. Д. Основной класс «looping» должен наследоваться от интерфейса, который позволяет всем другим компонентам получать частицу рендеринга, счетчик времени и т. Д.

Затем вам нужно несколько компонентов, один для мяча, другой для любого другого физического объекта (не забудьте заставить их реализовать интерфейс «физика» и добавить их в качестве «ссылок на физические объекты» в ваш основной класс, чтобы физика для них рассчитывается для каждого кадра!), одна для фона и одна для пользовательского ввода.

Вы также можете добавить несколько других, каждый из которых будет выполнять определенное действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...