Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Использование компонентов


Автор: Invisible 7.12.2010, 12:00
Хотел написать игру - змейку .. получается есть "змея" которая передвигается по сетке и есть ... то что она будет кушать. Вопросы: какие компоненты использовать при написании с использованием Swing. Что за компоненты будут поле, змейка и хавка. Как лучше вообще реализовать?

Автор: math64 7.12.2010, 14:01
Можно использовать JLabel с картинкой без надписи на JPanel с размещением GridLayout. Но возможно будет слишком медленно.
Можно написать свой класс extends JComponent, который будет отрисовывать все самостоятельно.

Автор: Skipy 8.12.2010, 14:46
Имхо, только второй способ. По первому слишком много компонент получится.

Автор: DimonDimon 8.12.2010, 18:17
Я бы сделал так:  Класс Змея содержит массив Point2D - координат по которым отрсиовываются сегменты туловища змеи.   Сегментами могут быть как простые квадраты/кружки так и заранее подготовленные изображения (рот хвост туловище), если не лень заморачиваться.  Хавка также массив координат (Point2D). Изображаеся также либо квадраты/кружки либо картинки. 

Всё это отрисовывается на JPanel. 

По таймеру добавляется хавка. Также по таймеру изменяется массив с координатами змеи: Последний элемент удаляется а в голову массива добавляется новый. Это будет имитировать движение змеи по полю.

При пересечении координат змеи с координатами хавки в  массив змеи добавляется один элемент, а из массива хавка - соответствующий элемент удаляется. Змея съедает хавку и увеличивается на один сегмент. При пересечении координат змеи с краями JPanel - игра проиграна.

как-то так.

Автор: dorogoyIV 8.12.2010, 23:06
почти как написал DimonDimon  smile 

Автор: Invisible 9.12.2010, 13:19
Так , значит метод который я использую сейчас не совсем правильный? У меня поле состоит JLabel размещенных на таблице. То есть когда змея двигается вперед я просто перерисовываю некоторые JLabel. Могу предположить что затратно (перемещение змеи поедает 20 мегабайт, полная версия  от dorogoyIV поедает 25)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)