Регистрация: Oct 2002
Адрес: Minsk, Belarus
Сообщений: 103
|
Вопрос по архитектуре программирования игр на флэше
Народ, подскажите, может в книжках такое уже расписывали. А у меня и денег и времени нет читать книги. Всё из интернета беру.
Вот такие вопросы:
Предположим я хочу написать игру - 2D ходилку, типа Dizzy или Seymour, которые раньше были на ZX-Spectrum'ах. Кто знает, тот поймёт.
Вот как я себе это представляю:
Каждый движущийся объект на экране - отдельный класс со свойствами и методами. Возможно будет 1 обстрактный класс - Enemy - враг, от которого все будут наследовать.
Есть класс Screen - он инициализируется статическими и динамическими объектами - врагами, например. У Screen'a есть матрица - она инициализируется изначально только статическими объектами. Потом все объекты классов (врагов и героя) начинают взаимодействовать с матрицей Screen'a и ведут себя по законам определённым в классах этих объектов.
Например, вопрос:
Каждый объект должен действовать асинхронно с помощью setInterval , например, или следует создать какой нибудь manager, который будет опрашивать объекты?
Сколько RAM может использовать флэш плеер? следует ли буферизовать соседние Screen'ы?
Каких размеров лучше делать матрицу? В каждой ячейке лучше хранить цифры от 0 до 9 , например? а не true/false. Какого размера ячейки?
Возможны ли проблемы со скоростью игры? Следует ли использовать где-нибудь onEnterFrame?
Главный вопрос: если у вас есть опыт подобного программирования или другие варианты решения 2D игры, можете ли вы что-нибудь посоветовать для вышеизложенного решения? или предложить свой.
Ещё вопрос: можно ли написать "единый" движок для 2D игр, с абстрактными классами врагов, статических взаимодействующих объектов (например кувшин, который можно разбить ногой)? скорее, вопрос, не "можно ли", а имеет ли смысл, и не окажется ли в конце, что это никому не нужно, этот движок глючит, сплошные тормоза и вообще C++ рулит.
За любые профессиональные комментарии и предложения буду очень признателен.
__________________
Не всё то флэш, что шевелиться.
|