![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Nov 2005
Сообщений: 8
|
С AS разбираюсь примерно год. Т.е. можно сказать совсем недавно. Опыта программирования в других языках нет. Вот и решил окунуться в AS. Обзавелся соответствующей литературой. И вот решил проверить свои силы на примере собственной игрушки. Конечно исходников игр в нете много, и можно было бы что-нибудь подчерпнуть для себя, но код в них разбросан по разным кадрам.....клипам... и. т.д. и.т.п. Насколько мне известно от этого надо избавляться и это не есть пример подражания.
Решил писать и рисовать все от себя и с нуля и по своим ощущениям. Сценарий. Поэкрану бегает мышь, которая собирает сыр. Мышка может отстреливать врага. Вот пока и собственно все (см. файл). Далее предполагается создать несколько уровней, бонусы и т.д. В связи с этим у меня возникло несколько вопросов к опытным, матерым AS программерам (прошу прощения если неграммотно изьясняюсь: 1. В игре я не использую собственные классы, а наверное это не хорошо с точки зрения ООП и по причине того, что в дальнейшем игра предусматривает более сложный сценарий (уровни, бонусы и т.д.) Как их граммотно создать, сколько их должно быть? (Мышь, Враг, Сыр..... или я вобще туплю на этот счет) Может у кого нибудь есть исходник какой-нибудь аркады с использованием классов или вы можете исправить общую структуру моего кода. 2. Плохо ли использовать onEnterFrame для подобных игр, или основную функцию игры нужно загонять в setInterval? 3. Какие грубые ошибки, с точки зрения программирования я допускаю в коде? (Да бы не делать это больше никогда). Заранее примного благодарен. Файлик-исходник прилагается. Последний раз редактировалось tibo; 13.03.2008 в 15:54. |
|
|||||
|
Modus ponens
|
Ну, http://opensource.adobe.com/wiki/dis...ng+Conventions
тут конвенции по тому, как непосредственно писать. От себя добавлю, что названия переменных на транслите... ну, как бы, не есть хороший тон =) Ссылаться на рут плохо равно как и создавать там какие-то переменные. В игре, особенно с уровнями, очень желательно иметь что то вроде инит- и делит-функции. Чтобы можно было нормально очистить все данные и перезапустить игру по новой. Создавать функции доступные только из скопа другой функции чревато... Т.е. может так случиться, что эту же функцию нужно будет вызвать из другого места, а обратиться к ней от туда уже никак...
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 8
|
Цитата:
По поводу рут. Хотелось бы поподробнее.....в связи с этим вопрос: Для того, что бы не ссылаться на рут мне необходимо в начале создать пустой клип: И в дальнейшем все мувики вставлять в него и плясать относительно этого клипа game, а не _root? Я правильно понял...? |
|
|||||
|
Banned
Регистрация: Feb 2008
Сообщений: 63
|
прикольная игруха)))
названия функций - placeCheese(); - первая буква с маленькой,вторая с большой... вместо _root надо передавать ссылку на него в функцию... вместо onEnterFrame как раз в играх используется setInterval(); вместо var plc:Array = []; всё же лучше Но самый главный совет - научитесь писать названия функций и переменных настолько явно,чтоб это было понятно любому,кто откроет ваш код.И лучше написать много маленьких функций,чем одну большую. А так хороший код. |
|
|||||
|
Modus ponens
|
Цитата:
Все классы, создание которых возможно без помощи new рекомендовано создавать именно так. Некоторые из АС3, но добавил спецом для полноты картины.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 13.03.2008 в 20:03. |
|
|||||
|
Modus ponens
|
Хм... нет, не совсем. Лучше всего оперировать переменными типа MovieClip, тогда не будет необходимости писать имена типа _root['mc'+i].parent.parent.clip. Но, в общем, ход мысли правильный. Просто на каком-то этапе может оказаться необходимым, например, удалить\пересоздать всю сцену\игру\приложение. Если оно созданно в руте, тогда проблем будет куча.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|