суббота, 21 декабря 2013 г.

День восьмой и девятый - лень и дела

Отголосок ленивой сонной расслабленности продолжает преследовать. Уникальное состояние на самом деле - когда не тревожат горящие дела. Наверно оно было несколько раз в жизни.
Тем не менее немного полезного сделано. Начала писать костяк квестов, писать / удалять. Хочу сделать так чтобы оно было максимально подготовлено к внезапным хотелкам, было по возможности стабильным и при добавлении конструктора уровней для игроков чтобы не переписывать слишком много.
Будет очень много статики, и не будет синглтонов. Опыт показывает что приложение достаточно крупное выдерживает без архитектурных фреймворков если статические ссылки на классы собраны в нескольких местах. Да, я не буду скорее всего использовать что то стороннее, очень не хочется разбирать и отлаживать чужое, разве что с минимал компс украду пару идей.

Меня последнее время очень беспокоит мысль про дырявые абстракции. Есть ощущение что когда все запихиваешь в черный ящик то расслабляешься и позволяешь делать странные вещи, думая что все равно апи скроет. Вот есть желание не притворяться, а показывать что делает объект и какими механизмами. И инструментом предупреждения ошибок делать здравый смысл и простоту.
К тому же не сильно удачные абстракции усложняют жизнь больше чем упрощают. Есть ощущение что на старте нам показывают хороший инструмент, он помогает, и его начинают использовать везде где нужно и не нужно. Получается как то так : создаем красивое обобщение, натыкаемся на исключение, дописываем, дописываем, дописываем, получаем сферического монстра который уже не может использоваться и начинаем заново. Как то так.

Зы. Как это касается квестов. Я разделила их на две части данные присущие любой сущности которая описывает игровые правила и на специфические классы для которых скорее всего в интерфейсе будет только геттер на основную часть (уникальный айдишник и тип пока)Ю Один уровень - один уникальный класс который моделирует все что угодно внутри используя графические и логические компоненты, имеет доступ к данным системы, имеет свой уникальный набор данных. Посмотрим что из этого выйдет.

четверг, 19 декабря 2013 г.

День седьмой - отсыпаюсь после вчерашнего забега.

Успето мало. Сохранение и загрузка игрового процесса, причесывание визуала поля, ресайз ячеек. Уже вполне залипабельно ;)

Ночная инкапсуляция

Дорисовала я вчера элементы и поняла что не смогу заснуть пока их не вставлю в игру, хотя уже в ушах звенело слегка, поэтому кодю слегка на автомате.

Итак, делаю класс BaseCellData чтобы разбирать клип с разными цветами и формами для одного соеденения на битмапы.

public class BaseCellData {

public var y:int;
public var x:int;

public var name:String;

private var _frames:Array = [];

public function BaseCellData (
name:String, 
mc:MovieClip, 
x:int, y:int
) {
    this.x = x;
    this.y = y;
    this.name = name;
    for (var i:int = 1; i <= mc.totalFrames; i++) {
        mc.gotoAndStop(i);
        _frames[i] = createBitmap(mc).bitmapData;
    }
}

И забиваю себе данные.
public static var data:Object = {};
data['0000'] = new BaseCellData('cell_0000', new cell_0000(), -2, -2);
....

Таак думаю я, для начала сделаем рандомчик. Как сделать проще всего?

public function get bitmapData ():BitmapData {
    return _frames[1 + Math.floor(Math.random()* (_frames.length - 1)];
}

Впихиваю в отрисовку, запускаю - после нескольких правок неправильных символов все работает, красотень! Запускаю просчет - здравствуй карнавал (на каждый просчет все ячейки перекрашиваются).

Блиин, а надо же запоминать в какой ячейке какой цвет!
Дописывается код

public var frame:int;

public function getBitmapData (frame:int = -1):BitmapData {
    this.frame = frame;

    if(this.frame == -1){
        this.frame = 1 + Math.floor(Math.random()* (_frames.length - 1) );
    }
    return _frames[ this.frame];
}

Теперь я могу узнать какая картинка получена и запомнить во вьюхе, все работает, я ложусь спать.


Утро.
О боже что же я натворила! Мысль не выходит из головы пока завтракаю.

Убираю из кода getBitmapData, магический frame который отдает верное значение только сразу после обращения и открываю доступ к _frames.

А мораль такова - пока не собираешься строить продуманный и клевый звездолет лучше не выеживаться и давать доступ к данным напрямую.



среда, 18 декабря 2013 г.

День шестой - многарисую


Минимум 16 клеток + 2 состояния - ща умру и ща появлюсь * четыре пять кадров... Сделано где то 80%, осталось сейчас нарисовать 2 фигуры и раскидать цвета по кадрам.
К вечеру слегка болит голова, явно от переизбытка усилий. Но оно мне нравится.
Зы, то что было утром -

Завтра буду проставлять координаты для точного позиционирования на сетке и вставлять в демо.

вторник, 17 декабря 2013 г.

День пятый

Нарисовано не так много как мне хотелось бы, но за набросками все яснее видно что вырисовывается некая бредовая стилистика.
И опять ко мне вернулась простуда, когда же я вылечусь до конца.

Стартскрин

Старт туториала

Экран головоломки с заданием, прямо очень набросочно

Пробую сделать финальный арт для знаков жизни.



Настройки, пока не нравится.

Откуда растут ноги у плохого кода?

Говнокод начинается с кривой постановки задачи.
Когда нету четкого понимания что должно происходить четкой структуры в коде тоже не будет, а будет кучка кода написанного на всякий случай, перемежающаяся заплатками в те моменты когда поступали озарения.
И нужно иметь очень большой опыт и квалификацию чтобы такого не допустить. Который лучше в общем потратить на кодинг а не на работу бизнес аналитика.

Размышления

Мне сегодня снилась однокурсница с которой я не поддерживала вообще никаких контактов и даже фото ее не видела уже лет шесть.
И я вспомнила наш последний разговор - она ушла по декрету, зашла позже в училище насчет восстановления и мы говорили о планах. Я рассказала тогда что думаю стать программистом на что получила "аа ты просто не представляешь как это сложно" и скептический взгляд.
Я и забыла об этом, честно полагая что оно как то само случилось. Да нет, я приняла решение прежде чем открыла первую книжку.

И это я к чему - я больше либо не делюсь планами, либо проношу мимо ушей скептические морды (по поводу моего текущего проекта их было 99%).

Наверно сейчас такой же переломный период, время принятия решений. А решение такое - я занимаюсь только тем что ценно для меня и делаю это с полной отдачей.

Моя жизнь настолько полна невозможного что уже пора поверить в себя.

понедельник, 16 декабря 2013 г.

День четвертый












Итак, вчера ко мне приехал планшет.


Новость хорошая - планшет идеален и навыки рисования я не утратила. Новость плохая - мышцы и мозги отвыкли и болят. По итогам сегодняшнего дня пока только скетч стартскрина и палитра цветов. Ну и немного нагугленых картинок под рефы.