Урра, самая первая версия моего нового крупного проекта! Пока для компьютера :)
Ниже будет следовать описание мира, о персонажах, несколько моих
просьб. Если они вам не нужны, вы можете просто скачать игру:
И всё-таки я вам советую продолжить чтение, иначе в следующей версии вы можете кое-что потерять ;)
Это игра, где вам надо будет воспользоваться вашей логикой, меткостью и аккуратностью, и всё ради того, чтобы убить вроде-бы невинных квадриков, которые
ненавидят игры.
Управление производится мышью - вам нужно закидать камнями, бочками с бензином, ледяными глыбами и запугивательными скелетами. Некоторых квадриков можно не убивать, некоторые помогут вам осуществить задуманное.
В общем, игра разнообразна и может ещё наполняться разными кубриками и фичами - в этом можете посодействовать и вы :)
Сейчас есть 15 видов квадриков, 15 уровней и 4 основных видов оружия. Я стараюсь сильно не налегать на физические законы или логику - должна быть гармоничная смесь обоих компонентов.
Проект будет развиваться, и чтобы заново не проходить уровни, вы можете записывать секретные коды, которые находятся в правом нижнем углу и которые я прикрыл на скриншотах большими очкастыми смайликами :)
Если вы найдёте какие-нибудь ошибки или просто хотите добавить свою идею - отпишитесь здесь.
Также меня очень волнует управление в игре на небольших экранах.
Как только я домучаю установку SDK, TheyHateGames будет также игрой для андроида!
Структуры данных были созданы еще в GameMaker 6, а то и раньше, для замещения стандартных массивов (array). На компьютерах структуры явно выигрывает в скорости; в яваскриптах особой разницы нет - всё равно прорисовка берет больше ресурсов - , но всё-таки они удобнее и функциональнее.
Существует 6 видов структур данных:
- ds_queue
- ds_priority_queue
- ds_stack
- ds_list
- ds_map
- ds_grid
Тоже очередь, но уже у каждой ячейки данных есть и приоритет.
С нашим "магазином" это выглядит так: стоит человек десять в очереди, и тут в магазин заходит Владимир Владимирович. Ясен пень, мы его пропустим вперёд :) вот, теперь он купит сосиски быстрее всех. Но вдруг входит Жириновский :D Мы его тоже пропустим вперёд, но ему придется подождать своих сосисок, ведь впереди него Путин ;)
Только вот на магазине отрицательный приоритет не покажешь :)
Ds_stackDs_stack - это очередь наоборот. Здесь добавленная ячейка будет изъята первой.
Сам я этой структурой не пользуюсь, поэтому про применеие ничего не могу сказать.
Ds_listМоя самая любимая структура! Лист или список - это одномерный массив данных, из которого можно в произвольном порядке извлекать данные или добавлять значения в произвольное место в структуре. Также есть автоматическая сортировка, перемешивание, определение количества ячеек с данными.
Применение списков очень широко. Без них нельзя было бы выбрать неограниченное количество юнитов в стратегиях (starcraft), стало бы затруднительно управлять большим количеством ресурсов.
Ds_gridГоворя проще, ds_grid - это таблица. Без структур данных таблицу можно сделать и в виде двумерного массива, но эта структура несомненно удобнее, т.к.:
- Можно одной строчкой кода заполнить нужный участок ячеек нужным значением, причем не только прямоугольной, но и круглой формы.
- Можно получать минимальное или максимальное значение в указанном регионе или получать сумму значений.
- Также при желании можно увеличить или уменьшить структуру, И
- ли определить ее размер,
- А еще скопировать участок значений,
- И т.п.
Ds_grid может применяться для генерации карт или более производительной проверки столкновений для крупных уровней с большим количеством столкновений.
Также в сочетании с ds_map можно реализовать гибкий по возможностям инвентарь.
Ds_mapDs_map по своей структуре больше напоминает *.ini файл. Это тоже список, но у каждой записи есть свой ярлычок с названием.
Так можно хранить настройки игры или параметры предметов в инвентаре. Ds_map может хранить и одно значение, и несколько десятков. У каждого ярлыка тоже может быть несколько значений.
Например:
Есть кинжал. У него:
- Минимальная сила удара - 2
- Максимальная сила удара - 5
И все.
А вот священный меч:
- Минимальная сила удара - 20
- Максимальная сила удара - 50
- Здоровье - +50
- Бонус - крит х5
- Бонус % - 10
И еще 10 параметров.
Так же можно указывать заклинания (и даже случайным образом генерировать их во время игры).
А еще делать постепенную прокачку юнитов или зданий нелинейным способом.
В общем, много чего можно сделать :) Здесь я указал наиболее частые способы использования.
В играх же могут применяться все виды структур данных. Можно их вкладывать друг в друга, создавая более сложные конструкции.
Любую структуру данных можно сохранить в виде обычной строки, понятной только для гейм мейкера :) .