Цитата:
|
Как правильно поделить программу на классы?
|
Этот вопрос относится к Проектированию, довольно самостоятельной дисциплине. Здесь нет однозначных ответов, все зависит от проекта целиком. Одно дело, пока Вы пытаетесь реализовать движение битла в вакууме, и совсем другое, когда он двигается по карте с препятствиями и NPC. Здесь наверное стоит почитать общие вещи по проектированию, особенно ООП (так как AS3 ориентирован именно на ООП).
Цитата:
|
а писать код перемещения персонажа в классе Keys неправильно, поскольку это код класса Beatle.
|
Категорически несогласен. Каждый класс должен отвечать только за то, что происходит у него "внутри", с его частями, его подчиненными. Как раз здесь очень яркий пример, почему. Чтобы обеспечить логику движения по карте вашему экземпляру битла, Вам придется подарить ему знание всей карты и описать логику взаимодействия со всеми предметами и неписями, ловушками и бонусами всех возможных классов. То есть Ваш битл должен будет содержать в себе буквально копию всей остальной программы. А ведь он — не более чем еще один объект на карте. Подчиненный Карты. Карта знает "себя" и знает битла. Ей и решать, куда и как он должен/может двигаться, с кем он встретился и дошел ли до конца уровня.
Всех благ.