DarkDes, сходу не помню. Если гуглить, то вылазит много малюсеньких статеек, из которых ни одна не решает все проблемы. Поначалу сложно врубиться в то, как работает в Lua стек, через который с ним всё сообщение идёт. Давай, я лучше просто кину тебе классик, который у меня оборачивает всё взаимодействие с Lua и пример скрипта уровня на Lua. Как соберёшься врубиться в тему - дай знать. :)
DarkDes, скрипты действительно полезны. Я Lua использую, очень удобно специфическую логику уровней программировать - то, что нужно на конкретном уровне игры, а в движок заталкивать не хочется. Например на пятом уровне при нажатии кнопки "А" должен открыться люк "Б" и в соседней комнате появиться пять юнитов "Г".
Но скорее всего это не пригодится, вдруг на не широкоформатном мониторе картинка будет сжиматься.
Обрезаться она должна с краёв. Чтобы на большинстве мониторов нормально смотрелось, а у тех, у кого мониторы небольшие оставалось основное содержание. И полосу перевёрстывать не понадобится - картинка станет всегда на всю ширину колонки.
Предлагайте улучшения, я в общем то еще не закончил с ним, но пока что выглядит так
Раз спросил: попробуй подкладку под текст попрозрачней или посветлее сделать, чтобы не так контрастно было. Просто оттенить, а не чёрную полосу сделать чтобы. :) Переживаю я за целостность сайта.
NixEon, с тонкой чёрной обводкой выглядит "вполне приличненько" само по себе. Оно клёво, да, контрастно и приятно резко. Но если поглядеть на окружающую обстановочку сайта, то легко заметить, что такого жесткого контраста нигде нет. Вообще чистого чёрного почти нет. С такой рамкой спотлайт будет гореть у сайта как звезда во лбу. Мне тоже нравится обводка в один пиксель, но я бы её немного смягчил (локально не так эффектно, зато более цельно с окружением):
Однако полностью отказываться от надписей странновато, какой-то рекламный слоган должен быть.
Я же как раз там кроме названия и слоган пропихнул. Если подписывать снизу, то там и в две строки будет сносно выглядеть. Только паддинги нужно настроить, чтобы шире картинки подпись не расползалась.
Кто же, кто же сделает правильный шаблон баннера для спотлайта? :)
Давайте я внесу своё предложение. Мне кажется, что:
Логотип XGM'а на баннере, отображаемом исключительно на главной странице XGM'а действительно лишний.
Названия у всех разные, длинные вписываются с трудом. Лучше название вообще вынести в подпись стандартным шрифтом - будет и больше места для текста, хоть в несколько строк пиши, и ссылка будет своим подчёркиванием говорить, что на неё можно кликнуть - не нужно втыкать держурный мусор "читать далее...".
В моём браузере (Firefox) баннер странно выровнен по вертикали + слева от него шальной буллет торчит:
Итого, идеальный баннер для спотлайта, на мой взгляд, это просто картинка из игры с внешней скромной типовой подписью-ссылкой под ней:
Типовые взаимодействия типа столкновений, срабатываний на расстоянии, трассировки по лучу и прочего должны быть реализованы в движке, чтобы такое взаимодействие в игре везде работало одинаково и реализовывалось в одном месте: GetCollisions(obj), GetObjectsInRadius(obj, radius), GetObjectsOnRay(obj, ray_direction, ray_distance) и т.д.
А вот специфические взаимодействия реализуются внутри игровых объектов, например у меня червь может пугать мелкую живность - это реализовано публичным методом Scare() у класса Creature. Червь берёт у игрового движка список объектов в некотором радиусе и каждого "пугает" запуском obj->Scare(this), дальше существо в реализации метода само решает, испугаться ему или нет. Или, например, EMP-пушка обездвиживает на некоторое время механизмы - проще у абстрактного класса MechanicalUnit реализовать метод Paralize(time) и дёргать его напрямую, чем проталкивать OnParalaze() от корневого Object'а - живым юнитам от этого мусора никакой пользы. Если конечно нет парализующих ядов - тогда парализация становится типовым взаимодействием. По здравому смыслу, короче.
class Car : Object
{
public Car(IGameEngineForObjects engine);
public bool ProcessIteration(float dt);
public bool Exploide();
public bool Move();
private IGameEngineForObjects _engine;
}
bool Car::ProcessIteration(dt)
{
if(_gameEngine->GetCollisions(this) != null)
{
return Exploide();
}
return Move(dt);
}
Для бочки аналогично. Объект оперируя интерфейсом движка, в котором есть только те методы, которые могут понадобиться объектам, запрашивает у движка список объектов, с которыми он сталкивается. Дальше либо объекты друг с другом специфически взаимодействуют.
Inflexible, ага! Пока червь сжимается, он поворачивается чуть медленней, чем в режиме резких поворотов. Раньше он деревенел и нельзя было направление сменить, теперь за время сжатия можно успеть полный разворот сделать. Можно сжиматься, резко при этом разворачиваясь и прыгать прямо назад. Боевой разворот, короче. :) Хочешь потестить?
» Бродилка / [Лог #6] Немного о структуре движка.
» Роглайк «Долго и трудно» / Роглайк «Долго и трудно»
» Бродилка / [Лог #6] Немного о структуре движка.
» Low-Poly Art в игровой индустрии / Что почитать/послушать про игровую разработку
» Бродилка / [Лог #7] Класс рисовальщика.
» Бродилка / [Лог #7] Класс рисовальщика.
» XGM Team / Spotlight
Ред. Kozinaka
» XGM Team / Spotlight
» Dead Eternity / Пост Негодования
» Бродилка / [Лог #7] Класс рисовальщика.
» Dead Eternity / Пост Негодования
Ред. Kozinaka
» Dead Eternity / Пост Негодования
» Dead Eternity / Пост Негодования
Ред. Kozinaka
» Несыть / Обзоры «Несыти» 3.4а
Ред. Kozinaka
» Dead Eternity / Пост Негодования
» Процедурная нереальность / Вечер Rnd. ghots busters fan project.
Ред. Kozinaka
» Dead Eternity / Пост Негодования
» Несыть / Переработка существ (часть 1)
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Kozinaka
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Kozinaka
» Бродилка / [Лог #7] Класс рисовальщика.
» Роглайк «Долго и трудно» / Новости по игре "Долго и трудно" от 03.02.2015
» Несыть / Переработка существ (часть 1)
» Программирование / Новведения в C# 6.0