![]() |
Помогите начинающему писать грамотно код..
Вложений: 1
С AS разбираюсь примерно год. Т.е. можно сказать совсем недавно. Опыта программирования в других языках нет. Вот и решил окунуться в AS. Обзавелся соответствующей литературой. И вот решил проверить свои силы на примере собственной игрушки. Конечно исходников игр в нете много, и можно было бы что-нибудь подчерпнуть для себя, но код в них разбросан по разным кадрам.....клипам... и. т.д. и.т.п. Насколько мне известно от этого надо избавляться и это не есть пример подражания.
Решил писать и рисовать все от себя и с нуля и по своим ощущениям. Сценарий. Поэкрану бегает мышь, которая собирает сыр. Мышка может отстреливать врага. Вот пока и собственно все (см. файл). Далее предполагается создать несколько уровней, бонусы и т.д. В связи с этим у меня возникло несколько вопросов к опытным, матерым AS программерам (прошу прощения если неграммотно изьясняюсь: 1. В игре я не использую собственные классы, а наверное это не хорошо с точки зрения ООП и по причине того, что в дальнейшем игра предусматривает более сложный сценарий (уровни, бонусы и т.д.) Как их граммотно создать, сколько их должно быть? (Мышь, Враг, Сыр..... или я вобще туплю на этот счет) Может у кого нибудь есть исходник какой-нибудь аркады с использованием классов или вы можете исправить общую структуру моего кода. 2. Плохо ли использовать onEnterFrame для подобных игр, или основную функцию игры нужно загонять в setInterval? 3. Какие грубые ошибки, с точки зрения программирования я допускаю в коде? (Да бы не делать это больше никогда). Заранее примного благодарен. Файлик-исходник прилагается. |
Ну, http://opensource.adobe.com/wiki/dis...ng+Conventions
тут конвенции по тому, как непосредственно писать. От себя добавлю, что названия переменных на транслите... ну, как бы, не есть хороший тон =) Ссылаться на рут плохо равно как и создавать там какие-то переменные. В игре, особенно с уровнями, очень желательно иметь что то вроде инит- и делит-функции. Чтобы можно было нормально очистить все данные и перезапустить игру по новой. Создавать функции доступные только из скопа другой функции чревато... Т.е. может так случиться, что эту же функцию нужно будет вызвать из другого места, а обратиться к ней от туда уже никак... |
прикольная игруха)))
названия функций - placeCheese(); - первая буква с маленькой,вторая с большой... вместо _root надо передавать ссылку на него в функцию... вместо onEnterFrame как раз в играх используется setInterval(); вместо var plc:Array = []; всё же лучше Код:
var plc:Array = new Array();А так хороший код. |
Цитата:
Все классы, создание которых возможно без помощи new рекомендовано создавать именно так. Код:
var obj:Object = {}; |
Цитата:
По поводу рут. Хотелось бы поподробнее.....в связи с этим вопрос: Для того, что бы не ссылаться на рут мне необходимо в начале создать пустой клип: Код:
var game:MovieClip = this.createEmptyMovieClip("game", this.getNextHighestDepth()); |
Хм... нет, не совсем. Лучше всего оперировать переменными типа MovieClip, тогда не будет необходимости писать имена типа _root['mc'+i].parent.parent.clip. Но, в общем, ход мысли правильный. Просто на каком-то этапе может оказаться необходимым, например, удалить\пересоздать всю сцену\игру\приложение. Если оно созданно в руте, тогда проблем будет куча.
|
| Часовой пояс GMT +4, время: 00:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.