Войти
ПроектыФорумКонкурсы

[320*200*8] Тарас Бульба и платформы Хулиона (на 10й странице простыня про генереции) (2 стр)

Страницы: 1 2 3 414 Следующая »
#15
12:14, 3 окт 2014

Incvisitor
> Серьезно? Пиксельарт эпоха огромных пикселей?
ты в стим давно заглядывал? там игр в пикселе с ранним доступом тысячи по 400р за шт и чем квадратнее и не доделанее игра тем ее лучше покупают) главное наобещать открытый мир и крафт

#16
12:29, 3 окт 2014

Mephistopheles
Эвана как...

#17
13:43, 3 окт 2014

Panzerschrek[CN]
> Как уровни хранятся? Или они генерируются?
Генерируются, хранятся в виде большого изображения, 16 мегов где-то занимает.

Mephistopheles
> добавляй крафт
Хочу добавить монстров. И чтобы их было много-много. Спрайтовый движок должен осилить толпы.

#18
13:59, 3 окт 2014

TarasB
Как освещение делаешь? Как в 8 бит преобразуешь?

#19
14:16, 3 окт 2014

TarasB
А можно в окне запустить, али только полноэкран?

#20
14:18, 3 окт 2014

Panzerschrek[CN]
Освещение делаю перебором каждого пикселя, добавляю рандом для дизеринга. Потом тупо умножаю покомпонентно.
Палитра трёхмерная (первые 11 цветов служебные, дальше идут 7*7*5=245 цветов палитры):

void InitColorTable ()
{
  for (int i=0; i<11; ++i)
    colorTable[i] = tbal::COLOR_BLACK;

  for (int i=11; i<256; ++i)
  {
    const int r = (i-11)%7;
    const int g = (i-11)/7%5;
    const int b = (i-11)/35;
    colorTable[i] = tbal::Color (r*28+g*8+b*3+37, r*14+g*18+b*13+21, r*6+g*10+b*29+5); 
  }
}

За счёт трёхмерности легко переводить из ргб в эту палитру (ну искажается цвет чуток XD):

uint8_t ColorToByte (tbal::Color color)
{
  return uint8_t(11 + (color.R()/37) + 7*(color.G()/52) + 35*(color.B()/37));
}

умножение тоже простое:

uint8_t MulLight(uint8_t color, int r, int g, int b)
{
  if (color>=11)
  {
    int cr = (color-11)%7;
    int cg = (color-11)/7%5;
    int cb = (color-11)/35;
    tblib::shrink(r, 256);
    tblib::shrink(g, 256);
    tblib::shrink(b, 256);
    cr = (cr*r+128)/256;
    cg = (cg*g+128)/256;
    cb = (cb*b+128)/256;
    return uint8_t(11 + cr + 7*cg + 35*cb);
  } else
    return color;
}
#21
14:18, 3 окт 2014

nes
Напиши в командной строке:

Lab2D.exe 640 400 w
#22
14:49, 3 окт 2014

TarasB
> Освещение делаю перебором каждого пикселя, добавляю рандом для дизеринга
Может лучше не рандомом, а регулярный сделать dithernig?
11 цветов не освещаются ( прям как в Quake )? А почему именно 11?

#23
15:02, 3 окт 2014

Panzerschrek[CN]
Потому что 256-(7*7*5) равно 11. Случайно вышло ровно столько. Регулярный дизеринг - это что, мне хранить ещё матрицу накопленных погрешностей?

#24
15:06, 3 окт 2014

TarasB
Крутотень )
Имхо прыг надо сделать с большей задержкой и круто бы нарисовать анимацию приседания перед прыгом )

#25
15:07, 3 окт 2014

nes
Я 4-то кадра с трудом нарисовал.

#26
15:08, 3 окт 2014

TarasB
А если я замалюю, сделаешь? )

#27
15:13, 3 окт 2014

nes
Не, мне всё равно лень это вводить.

#28
15:15, 3 окт 2014

А как обнаружение столкновений сделано?

#29
15:20, 3 окт 2014

Mephistopheles
По цвету пикселя)
Служебные цвета для этого и нужны.
Короче, для этого есть цвет стены и цвет лестницы. А, ещё для фейковых дырок есть цвет чёрной пустоты, и стены-прозрачной-для-головы.

Короче, движок мегабрутален.

Страницы: 1 2 3 414 Следующая »
ПроектыФорумКонкурсы