Классный арт.
Нейронкой делал?
elcar
> Поэтому у себя решил сделать инновацию - рандомно генерируемые сеты!
Это бессмыслица.
В своей сути сет это фиксированый набор предметов которые уже реализуют сбалансированый потенциал героя. Если говорить о полном сете. А рандомный сет это по сути набор каких-нибудь легендарок.
ronniko
> Нейронкой делал?
Photoshop, руки + генеративная заливка
Я наоборот ждал, что это нейронка.
А то тоже хочу нагенерить подобного контента для себя.
Я так сам не нарисую.
Накидал примерный вид экипировки:

Продолжаю жевать кактус внепланово апгрейдить UI.

Финальный дизайн:

Выглядит профессионально
krkd
> Выглядит профессионально
И при этом 0 Дукатов из 10
финальный дизайн
цвет текста почти такой же как подложка.
Я про текст экипировка и инвентарь.
Сделай другим цветом.
Примерно как-то так

Продолжаю грызть UI, на очереди панель меню и дерево способностей:

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

Всё хорошее и хорошее :)
Мне кажется, что D3 не вытянет графен, который будет ждать игрок, видя такие качественные заставки.
гидралиск
> Мне кажется, что D3 не вытянет графен, который будет ждать игрок, видя такие качественные заставки.
Угу) Я сам написал нужное для отображения и теперь не пользуюсь D3))) оказалось, что в ванильном js есть нужные функции)
Поверх картинки натягиваю "clipPath" - окошко в котором игрок видит только один кадр из спрайтшита и анимирую путем изменения координаты x горизонтального спрайтшита, получается самодельная мультипликация)
function image(place,x,y,w,h,src,obj={"func":{}}) {
if (obj.times) {
let clipPath = document.createElementNS("http://www.w3.org/2000/svg", "clipPath")
clipPath.setAttribute("id", obj.id)
let rect = document.createElementNS("http://www.w3.org/2000/svg", "rect")
rect.setAttribute("x", x)
rect.setAttribute("y", y)
rect.setAttribute("width", w/parseInt(obj.times))
rect.setAttribute("height", h)
clipPath.appendChild(rect)
let defs = document.createElementNS("http://www.w3.org/2000/svg", "defs")
place.appendChild(defs)
defs.appendChild(clipPath)
}
let image = document.createElementNS("http://www.w3.org/2000/svg", "image")
image.setAttribute('x', x);
image.setAttribute('y', y);
image.setAttribute('width', w);
image.setAttribute('height', h);
image.setAttribute("href", src)
image.onclick = obj.func
obj.times&&image.setAttribute("clip-path", 'url(#'+obj.id+')')
obj.opacity!==undefined?image.setAttribute("opacity", obj.opacity):false
if (obj.hoverOpa) {
image.onmouseover = () => {image.setAttribute("opacity", "1")}
image.onmouseout = () => {image.setAttribute("opacity", obj.hoverOpa)}}
place.appendChild(image)
return image
}