Привет john,
прочитал твою статью. Изучаю Яву уже около года, про класс Thread и его методы знаю не понаслышке. Я уже осознал важность изучения ООП и паттернов проектирования в программировании. Планирую вплотную познакомиться с Rational Rose.
Недавно я задал вопрос на другом форуме (ActionScript -
http://www.flasher.ru/forum/showthre...threadid=52471), но на него пока никто не ответил. Полагаю у тебя есть для меня ответ. Вот вопрос:
Предположим я хочу написать игру - 2D ходилку, типа Dizzy или Seymour, которые раньше были на ZX-Spectrum'ах. Кто знает, тот поймёт.
Вот как я себе это представляю:
Каждый движущийся объект на экране - отдельный класс со свойствами и методами. Возможно будет 1 обстрактный класс - Enemy - враг, от которого все будут наследовать.
Есть класс Screen - он инициализируется статическими и динамическими объектами - врагами, например. У Screen'a есть матрица - она инициализируется изначально только статическими объектами. Потом все объекты классов (врагов и героя) начинают взаимодействовать с матрицей Screen'a и ведут себя по законам определённым в классах этих объектов.
Например, вопрос:
Каждый объект должен действовать асинхронно с помощью setInterval , например, или следует создать какой нибудь manager, который будет опрашивать объекты?
Сколько RAM может использовать флэш плеер? следует ли буферизовать соседние Screen'ы?
Каких размеров лучше делать матрицу? В каждой ячейке лучше хранить цифры от 0 до 9 , например? а не true/false. Какого размера ячейки?
Возможны ли проблемы со скоростью игры? Следует ли использовать где-нибудь onEnterFrame?
Главный вопрос: если у вас есть опыт подобного программирования или другие варианты решения 2D игры, можете ли вы что-нибудь посоветовать для вышеизложенного решения? или предложить свой.
Ещё вопрос: можно ли написать "единый" движок для 2D игр, с абстрактными классами врагов, статических взаимодействующих объектов (например кувшин, который можно разбить ногой)? скорее, вопрос, не "можно ли", а имеет ли смысл, и не окажется ли в конце, что это никому не нужно, этот движок глючит, сплошные тормоза и вообще C++ рулит.
Как ты видишь, я задал вопрос о менеджере потока событий ещё до того, как прочитал твою статью. Значит данный вопрос актуален.
В качестве ещё одного вопроса: подойдёт ли твой движок для более сложной игры, нежели рулетка? 2D игры с героем, перемещающимся по экрану и взаимодействущим с врагами или другими объектами. И если да, то как лучше это реализовать?