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


Автор: m_art 9.2.2005, 22:19
Подскажите, пожалуйста, как можно реализовать автоматическое движение змейки через фикц. промеж. времени?

Автор: Domestic Cat 9.2.2005, 22:32
Какой змейки? Либо циклом анимации, либо Таймером.

Автор: LSD 9.2.2005, 22:42
Цитата(m_art @ 9.2.2005, 22:19)
как можно реализовать автоматическое движение змейки через фикц. промеж. времени?

Если интервал фиксированный то таймером, java.util.Timer и javax.swing.Timer.

Автор: Domestic Cat 9.2.2005, 22:52
Цитата
сли интервал фиксированный то таймером, java.util.Timer и javax.swing.Timer.


Зависит от задачи, если этo игра то циклом лучше.

Автор: LSD 10.2.2005, 00:24
Цитата(Domestic @ 9.2.2005, 22:52)
Зависит от задачи, если этo игра то циклом лучше.

А так сложнее выдерживать фиксированный интервал времени. Время просчета движений и прорисовка может варьироваться.

Автор: Domestic Cat 10.2.2005, 00:38
Измеряем время за цикл и на основании него перемещаем змею. Тогда все равно, меняется фпс или нет. А Таймер - это дополнительный тред; да и когда тредом двигаешь чего-нибудь в игре, нич его хорошего не получится.

Автор: m_art 10.2.2005, 10:09
Спасибо за ответ. А можно где-то посмотреть пример использования класса Timer?

Автор: Domestic Cat 10.2.2005, 10:20
В Гугле.

Автор: m_art 10.2.2005, 10:22
Проблема в следующем...
Я только 2-3 недели как начал учить Java. Читал по книге Дейтела "Как программировать на Java" (книга 1). Думаю, что учится лучше на конкретном примере...Вот насчет многопоточного программирования написано в кн.2, которую, к сожалению, пока не нашел. Кстати, интересно Ваше мнение об этой книге. P.S. sorry за оффтоп

Конкретно о задаче:
Ничего большого и сложного писать не собираюсь, только учусь...
есть "змейка" (ArrayList)
есть метод move(Direction direction)
есть реализация интерфейса KeyListener, т.е. нажимая соотв. кнопки я могу двигать змейку...
Как можно туда "вклинить" Timer (или может быть по другому), чтобы змейка "сама" двигалась, в зависимости от какого-то int delay, пока, предположим, gameOver==false ?
P.S. читал javadoc Timer, без примера не разобрался smile

Автор: Domestic Cat 10.2.2005, 10:31
Да можно конечно; только имхо начинающему писать игру - последнее дело, т.к. в играх обычно есть нюансы. Например, такой: игра без Таймера (в таком применении) будет лучше игры с таймером. Игра без двойного бафферинга будет смотреться хуже игры с бафферингом. Чтом этим заняться нужно изучить сначала основы, а затем прочесь еще че-нибудь по программированию игр (желательно на Java).
Книг в нете не много а очень много, посмотри хотя бы ссылки в теме о литературе. Можно и без Дейтелей обойтись.

Автор: Tamerlann 14.2.2005, 15:31
http://forum.vingrad.ru/index.php?showtopic=18114
Да ещё и со ссылочками. smile

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