Как стать автором
Обновить
0
0
Светлов Александр @Mehalich

Пользователь

Отправить сообщение

Поиск пути в гексагональной сетке (AS3)

Время на прочтение2 мин
Количество просмотров14K
imageЭта статья представляет собой описание компонента HexaPath, реализующего поиск пути по алгоритму А* в гексагональной сетке. В сети мной было найдено большое количество описаний алгоритма на примере квадратной сетки и некоторое количество реализаций, но ни одного упоминания о шестиугольной сетке. И я написал свою реализацию. Выкладываю исходники. Вдруг кому-нибудь понадобится это, а писать самому будет лень.

Читать дальше →

Unity3d Tank Tutorial: Ходовая часть (Урок 1. Основы механики транспортного средства)

Время на прочтение12 мин
Количество просмотров151K
image

Вступление


Итак вы уже не новички в Unity, вы умеете создавать сцену, расставлять объекты на сцене, создавать terrain, делать префабы и тд… и главное — работать со скриптами, либо вы уже изучили статьи: Unity3D для начинающих — Туториал 1 и Unity3d script basics. Все эти знания вам пригодятся ведь в этом уроке мы двинемся намного дальше.

А именно: в первой части этого урока вы узнаете что такое Wheel Collider, как с помощью него управлять транспортным средством и создать реалистичное поведение подвески автомобиля, во второй части урока, на основе всего этого я покажу как сделать ходовую часть танка с соответствующей физикой и контроллерами.

Собственно то что вы видите на изображении сверху (это будет результат данного урока) вы можете опробовать «вживую» прямо в браузере. Хотите сделать это сами? Тогда добро пожаловать под кат
Читать дальше →

Физика на Flash. Создание Ragdoll в Nape на AS3

Время на прочтение8 мин
Количество просмотров5.8K
image
Надо было сделать физику на флеше, но с одним маленьким нюансом. Необходимо было на сцене отобразить порядка 10 — 15 регдолов (для не незнающих. Регдол — это кукла. Имитация человеческого тела). Попробовав реализовать подобное на распространенном Box2D, пришел к неутешительному выводу, что Box2D это не под силу сделать. Немного погуглив нашел относительно новый движок Nape (). Который и решил в общем данную проблему.
К своему удивлению не нашел на хабре упоминаний Nape и решил описать начало работы с ним.
Под катом, описание создание регдола и примеры для сравнения на Box2D и Nape, а так же исходники примера.

Читать дальше →

Микро-фреймворк Robotlegs. Обзор способов инжекта

Время на прочтение5 мин
Количество просмотров6.4K
Введение

Robotlegs является MVC фреймворком для создания приложений на flash/flex. Данный фреймфорк базируется на библиотеке swiftsuspenders, в которой реализуются механизмы инжектирования с помощью метатега [Inject]. В гугле достаточно много материала по использованию данного фреймворка. Поэтому не буду останавливаться непосредственно на инжекте. Однако во всех статьях, которые мне попадались, описывался именно механизм инжекта, но объявлению инжектируемых классов отводилось слишком мало внимания. Именно способам объявления инжектируемых классов я бы и хотел посвятить данную статью.
Читать дальше →

Что не так с наследованием? Разработка флэш-игр с использованием фреймворка PushButton Engine

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

Flixel
FlashPunk
Citrus Engine
PushButton Engine

Этим постом я хочу обратить внимание коллег-флешеров на перспективный опенсорсный движок под названием PushButton Engine. PBE уже успели представить на Adobe Max 2010 и разработать на нем #2 Top Facebook game 2010 по версии insidefacebook.com. Его используют для разработки игр такие компании как Zynga, Playdom, Hive7.

Разработчиками движка являются достаточно известные в геймдевелоперских кругах люди, создавшие такие игры как The Incredible Machines, Tribes, Torque и другие.

Предлагается любопытный компонентный подход к разработке, который, по заверениям авторов, гораздо удобнее и продуктивнее при разработке игр чем традиционный объектно-ориентированный.
Читать дальше →

Так ли хорош cacheAsBitmap?

Время на прочтение1 мин
Количество просмотров2.9K
Ранее я уже писал о быстродействии отрисовки во флэше и о cacheAsBitmap'е в частности.

Но сейчас передо мной встал конкретный вопрос — что быстрее — выставить cacheAsBitmap = true, или же перевести картинку в растр и загрузить ее как PNG. При условии, что картинка статична, но очень сильно нагружена разными градиентами и прочим.

Для решения вопроса я набросал небольшой тест.
Читать дальше →

Обновление Alternativa3D 7.7.0

Время на прочтение1 мин
Количество просмотров990
Мы уже давно собирались реализовать динамическое освещение в Alternativa3D 7, но по разным причинам откладывали это. Больше всего мы боялись, что система освещения на уровне архитектуры движка сильно снизит общую производительность.

И, наконец, нам удалось найти эффективное решение! Теперь в Alternativa3D 7 для FlashPlayer 10 есть динамическое освещение. Также мы внесли некоторые улучшения в движок и исправили баги. Скачать Alternativa3D 7.7.0 можно с официального сайта.
Читать дальше →

Аппаратно ускоренная графика во Flash на Windows и Linux

Время на прочтение2 мин
Количество просмотров2K
Вдогонку целой коллекции хабрастатей на тему выхода превью Molehill (низкоуровневое API Actionscript для вывода аппаратно ускоренной графики во flash-плеере) предлагаю вашему вниманию способ сборки/запуска этой радости на Windows и Linux (Ubuntu 10.10)
Читать дальше →

OpenGL — это просто!

Время на прочтение2 мин
Количество просмотров18K
В рамках «Недели разработки для Андроид» решил поделиться кое-чем из своего опыта.
Итак, за что мы любим эти маленькие шустрые гаджеты, живущие в наших карманах и сумках? Не ошибусь, если поставлю на первое место красивую разноцветную графику. В этом нет ничего постыдного — ведь даже мудрые вожди индейских племен готовы были на что угодно ради красивых стекляшек для своей скво.
Итак, нам просто до дрожи в руках хочется написать свою прекрасную шедевральную игру, готовую произвести революцию в умах геймеров. Вот только маленькая неприятность — попытка напрямую воспользоваться drawRGB() и иже с ними сразу обламывает все мечты, ибо подобным образом написанная игра сможет получить признание разве что в Эстонии, да и то если раунд закончится раньше, чем сядет батарейка.
Читать дальше →

Паттерн проектирования «Команда» / «Command»

Время на прочтение4 мин
Количество просмотров86K
Почитать описание других паттернов.
A

Проблема


Необходимо иметь эффективное представление запросов к некоторой системе, не обладая при этом знаниями ни об их природе ни о способах их обработки.

Описание


Существует по крайней мере три мотивации к использованию шаблона “Команда”:
  • инкапсулирование запроса в виде объекта для последующего протоколирования/логирования и т.п.
  • наделение сущности “вызов метода объекта” свойствами самостоятельного объекта;
  • объектно-ориентированный обратный вызов (callback);

Читать дальше →

4X Games: в поисках икса пятого

Время на прочтение9 мин
Количество просмотров14K
imageСегодня мне бы хотелось коснуться достаточно специфического рода игр, относящихся к жанру глобальных стратегий или же 4X-игр, как их иногда называют. Но речь пойдет не только об оффлайн-играх и жанре в целом, но и о некоторых аспектах онлайн-представителей.

Читать дальше →

Scala + Processing – интересный способ выучить новый язык

Время на прочтение4 мин
Количество просмотров11K
Недавно мне довелось на собственном опыте убедиться: чтобы научиться применять какие-то новые технологии, недостаточно прочитать пару книг по теме, потому что без практики теория мгновенно улетучивается из головы.

Но что можно сделать такого интересного на Scala? На самом деле, выбор не слишком большой. Я как-то придумал небольшую тулзу, неспешно написал ее, и «забил». А через несколько месяцев, к своему стыду, гуглил синтаксис «for loop»…

Я решил, что дальше так дело не пойдет, и нужно найти какие-то небольшие проектики на основные возможности языка. Тут мне и пригодился Processing. Скучные учебные проекты он любому новичку (вроде меня) поможет превратить в визуальные инсталляции. А дальше можно выбрать, что покопать углубленно — например, генерацию фракталов, рендеринг частиц или визуализацию данных.

Я переписал на Scala и выложил на GitHub парочку примеров. На скрине как раз один из них — MSA Fluids. Заинтересовавшихся прошу под кат.

Читать дальше →

Паттерн проектирования «Цепочка обязанностей» / «Chain of Responsibility»

Время на прочтение5 мин
Количество просмотров45K
Почитать описание других паттернов.


Проблема


Эффективно и компактно реализовать механизм обработки потока событий/запросов/сообщений в системах с потенциально большим количеством обработчиков.

Описание


Модель событие/обработчик широко применяется в программных системах из различных областей. В основном, это — графический интерфейс пользователя, где события, генерируемые от действий пользователя различным образом обрабатываются элементами интерфейса. Нельзя так-же забывать про WinAPI, который сплошь и рядом реализует такую модель. В большинстве источников эта модель имеет название Event Loop.

Читать дальше →

Двадцать вопросов, которые помогают разработать алгоритм

Время на прочтение5 мин
Количество просмотров8.3K
Как разработать алгоритм, решающий сложную задачу? Многие считают, что для этого нужно «испытать озарение», что процесс этот не вполне рационален и зависит от творческой силы или таланта.

На самом деле решение любой задачи сводится к сбору информации о наблюдаемом объекте. Причем этот принцип применим как для решения самых сложных научно-исследовательских задач, так и для решения прикладных задач. Работа изобретателя напоминает не столько работу волшебника, сколько путешествие первооткрывателя по неизведанной территории. Главное качество хорошего изобретателя – умение собирать информацию.

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

Кэширование в Google App Engine

Время на прочтение4 мин
Количество просмотров1.6K
Google App EngineКак вы уже знаете из предыдущей статьи, в App Engine есть множество способов хранения информации. Но многие из них весьма специфичны, и для повсеместного пользования подходят всего три: память инстанса, memcache и datastore.

Под катом вас ждёт изложение в цифрах и картинках, краткие рекомендации по кэшированию и исходные коды простого cacher'a и приложения для тестов.
Читать дальше →

Unity3d script basics

Время на прочтение13 мин
Количество просмотров111K


Предисловие


Эта статья будет посвящена новичкам в скриптовании Unity, но не совсем новичкам в синтаксисе JavaScript’а или любого другого подобного языка программирования. Тут надо маленько уточнить что JavaScript который использует Unity немного отличается от оригинального в пользу улучшенной поддержки ООП и называется соответственно Unity JavaScript. В нем например появились классы и их наследование, о чем не знают начинающие разработчики на Unity знакомые с объектно ориентированными возможностями оригинального JavaScript, поэтому отвергают его используя C# или Boo.
Читать дальше →

GAE XMPP v.2 (Java SDK). Джаббер в GAE со второго подхода

Время на прочтение2 мин
Количество просмотров991
О выходе 1.4.2 версии SDK уже писали на Хабре, меня же интересуют именно изменения в второй версии XMPP API



Так же, напоминаю про топик о первой версии XMPP API.
Читать дальше →

Прощай, салфетки, или как избавиться от глянца ноутбука

Время на прочтение4 мин
Количество просмотров47K
Thinkpad SL400
Тебе, %username%, нравятся глянцевые ноутбуки, на которых остаются следы от любого прикосновения? — Меня они очень раздражают.

Да, конечно, глянцевый ноутбук привлекательно смотрится на витрине: такой черный, красивый, блестящий, шикарный…. Однако, все мы знаем, что случается с этой красотой не то что через месяц, а через неделю активного использования. Никаких салфеток не напасешься, чтобы ноутбук выглядел не заляпанным, а все таким же шикарным.
Так что же делать с этим глянцем, кроме как закупить чистящие средства и те самые салфетки? Как вариант – выбросить продать и купить матовый. Но что, если нравится именно эта модель по остальным параметрам?
Еще один выход – ошкурить и превратить в матовый. Есть такие навыки, чтобы получилось аккуратно и без травм для любимой техники?
Ну и конечно, можно просто не обращать внимания, что каждое касание оставляет следы на крышке ноутбука, и заняться на досуге дактилоскопией: Кто трогал мой ноутбук? Кто сидел на моем стуле? А также забыть про мелкие очаровательные царапинки, которые со временем станут очень заметными на глянцевой поверхности.
Хочу предложить еще один способ защиты глянцевого ноутбука

«Тросик» с таймером для цифровых камер Canon

Время на прочтение4 мин
Количество просмотров18K
Не секрет, что при съемке на длинных выдержках фотографа спасают штатив и пульт управления («тросик»). Если штатив можно приобрести практически везде, и встречаются неплохие модели стоимостью даже в 600-700 рублей, то с пультом дела обстоят не так радужно. Ценник на фирменные пульты Canon начинается от $30, а между тем внутри этого пульта содержится всего лишь простейшая схема коммутации. Для съемки time-lapse видео придется приобрести пульт с таймером (фирменный Canon — $210, китайские братья по разуму подешевле). Я же хочу показать, как без применения сложной электроники и контроллеров самостоятельно собрать функциональный «тросик» с таймером, который подойдет к камерам Canon серий EOS-300D/350D/400D/450D и возможно каким-то другим.

Читать дальше →

Дерево Фенвика

Время на прочтение3 мин
Количество просмотров55K
Здравствуй, Хабрахабр. Сейчас я хочу рассказать о такой структуре данных как дерево Фенвика. Впервые описанной Питером Фенвиком в 1994 году. Данная структура похожа на дерево отрезков, но проще в реализации.

Что это?


Дерево Фенвика — это структура данных, дерево на массиве, которая обладает следующими свойствами:
• позволяет вычислять значение некоторой обратимой операции F на любом отрезке [L; R] за логарифмическое время;
• позволяет изменять значение любого элемента за O(log N);
• требует памяти O(N);
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Таллин, Эстония, Эстония
Дата рождения
Зарегистрирован
Активность