| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| Автор: Invisible 9.12.2010, 13:19 |
| Так , значит метод который я использую сейчас не совсем правильный? У меня поле состоит JLabel размещенных на таблице. То есть когда змея двигается вперед я просто перерисовываю некоторые JLabel. Могу предположить что затратно (перемещение змеи поедает 20 мегабайт, полная версия от dorogoyIV поедает 25) |