Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.03.2008, 15:48
tibo вне форума Посмотреть профиль Отправить личное сообщение для tibo Найти все сообщения от tibo
  № 1  
Ответить с цитированием
tibo
 
Аватар для tibo

Регистрация: Nov 2005
Сообщений: 8
По умолчанию Помогите начинающему писать грамотно код..

С AS разбираюсь примерно год. Т.е. можно сказать совсем недавно. Опыта программирования в других языках нет. Вот и решил окунуться в AS. Обзавелся соответствующей литературой. И вот решил проверить свои силы на примере собственной игрушки. Конечно исходников игр в нете много, и можно было бы что-нибудь подчерпнуть для себя, но код в них разбросан по разным кадрам.....клипам... и. т.д. и.т.п. Насколько мне известно от этого надо избавляться и это не есть пример подражания.
Решил писать и рисовать все от себя и с нуля и по своим ощущениям.

Сценарий.
Поэкрану бегает мышь, которая собирает сыр. Мышка может отстреливать врага. Вот пока и собственно все (см. файл).
Далее предполагается создать несколько уровней, бонусы и т.д.


В связи с этим у меня возникло несколько вопросов к опытным, матерым AS программерам (прошу прощения если неграммотно изьясняюсь:

1. В игре я не использую собственные классы, а наверное это не хорошо с точки зрения ООП и по причине того, что в дальнейшем игра предусматривает более сложный сценарий (уровни, бонусы и т.д.)
Как их граммотно создать, сколько их должно быть?
(Мышь, Враг, Сыр..... или я вобще туплю на этот счет)

Может у кого нибудь есть исходник какой-нибудь аркады с использованием классов или вы можете исправить общую структуру моего кода.

2. Плохо ли использовать onEnterFrame для подобных игр, или основную функцию игры нужно загонять в setInterval?


3. Какие грубые ошибки, с точки зрения программирования я допускаю в коде? (Да бы не делать это больше никогда).

Заранее примного благодарен. Файлик-исходник прилагается.
Вложения
Тип файла: zip mouse_game.zip (98.0 Кб, 123 просмотров)


Последний раз редактировалось tibo; 13.03.2008 в 15:54.
Старый 13.03.2008, 16:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, http://opensource.adobe.com/wiki/dis...ng+Conventions
тут конвенции по тому, как непосредственно писать. От себя добавлю, что названия переменных на транслите... ну, как бы, не есть хороший тон =)
Ссылаться на рут плохо равно как и создавать там какие-то переменные.
В игре, особенно с уровнями, очень желательно иметь что то вроде инит- и делит-функции. Чтобы можно было нормально очистить все данные и перезапустить игру по новой.
Создавать функции доступные только из скопа другой функции чревато... Т.е. может так случиться, что эту же функцию нужно будет вызвать из другого места, а обратиться к ней от туда уже никак...
__________________
Hell is the possibility of sanity

Старый 13.03.2008, 22:46
tibo вне форума Посмотреть профиль Отправить личное сообщение для tibo Найти все сообщения от tibo
  № 3  
Ответить с цитированием
tibo
 
Аватар для tibo

Регистрация: Nov 2005
Сообщений: 8
Цитата:
Сообщение от wvxvw
Ссылаться на рут плохо равно как и создавать там какие-то переменные.
....
За ссылку отдельное спасибо. Ознакомился, обязательно учту на будущее.

По поводу рут. Хотелось бы поподробнее.....в связи с этим вопрос:
Для того, что бы не ссылаться на рут мне необходимо в начале создать пустой клип:
Код:
var game:MovieClip = this.createEmptyMovieClip("game", this.getNextHighestDepth());
И в дальнейшем все мувики вставлять в него и плясать относительно этого клипа game, а не _root? Я правильно понял...?

Старый 13.03.2008, 18:58
Olegg вне форума Посмотреть профиль Найти все сообщения от Olegg
  № 4  
Ответить с цитированием
Olegg
Banned

Регистрация: Feb 2008
Сообщений: 63
прикольная игруха)))
названия функций - placeCheese(); - первая буква с маленькой,вторая с большой...
вместо _root надо передавать ссылку на него в функцию...
вместо onEnterFrame как раз в играх используется setInterval();
вместо var plc:Array = []; всё же лучше

Код:
var plc:Array = new Array();
Но самый главный совет - научитесь писать названия функций и переменных настолько явно,чтоб это было понятно любому,кто откроет ваш код.И лучше написать много маленьких функций,чем одну большую.

А так хороший код.

Старый 13.03.2008, 20:00
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
вместо var plc:Array = []; всё же лучше


Код:
var plc:Array = new Array();
Тыркаем первый линк в моем посте, и смотрим:
Все классы, создание которых возможно без помощи new рекомендовано создавать именно так.
Код:
var obj:Object = {};
var array:Array = [];
var xml:XML = <xml/>;
var regxp:RegExp = /*/;
var str:String = '';
var num:Number = 0;
Некоторые из АС3, но добавил спецом для полноты картины.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 13.03.2008 в 20:03.
Старый 14.03.2008, 00:58
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Хм... нет, не совсем. Лучше всего оперировать переменными типа MovieClip, тогда не будет необходимости писать имена типа _root['mc'+i].parent.parent.clip. Но, в общем, ход мысли правильный. Просто на каком-то этапе может оказаться необходимым, например, удалить\пересоздать всю сцену\игру\приложение. Если оно созданно в руте, тогда проблем будет куча.
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.