doom2d.org

Главная база плоских морпехов
It is currently 26 Oct 2020, 13:49

All times are UTC + 3 hours




Post new topic Reply to topic  [ 256 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13  Next
Author Message
PostPosted: 01 Aug 2014, 00:01 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>Но Си мне нравится больше
после D это проходит. у меня вот прошло, си отвратителен, неудобен, ублюдочен и убейте его кто-нибудь уже.


Top
 Profile  
 
PostPosted: 01 Aug 2014, 00:28 
Offline
Приколист
User avatar

Joined: 24 Jan 2012, 15:18
Posts: 1391
Location: Москва
ketmar wrote:
>Но Си мне нравится больше
после D это проходит. у меня вот прошло, си отвратителен, неудобен, ублюдочен и убейте его кто-нибудь уже.

Я не являюсь любителем C, но всё-таки не стоит так о каком-либо ЯП выражаться :) У каждого свои предпочтения.

_________________
by Stas'M


Top
 Profile  
 
PostPosted: 01 Aug 2014, 00:32 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
стоит-стоит. я на этом дерьме не один десяток лет писал, знаю, о чём говорю. спасибо, уносите. после D писать на цэ можно только если плотно рот завязать, чтобы не блевать постоянно.

p.s. c++ не предлагать, эта abomination отвратительна в любом случае, даже какой-нибудь древний basic лучше.


Top
 Profile  
 
PostPosted: 01 Aug 2014, 09:37 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
Вот вы, все учавствовавшие в данной бурной дискуссии, мне не поверите наверно, но проблема как была, так и осталась.
Image

сверху на изображении 7 квадов, которые затекстурены первыми 7-ю фреймами из массива (то есть по логике и по коду это должны быть 7 фреймов из первой строки). Но, вопреки ожиданиям, во всём массиве повторяются именно 7 фреймов из последней строки приведённого мной выше изображения. Я уже не знаю куда думать, потому что текстуры с одной лентой грузятся легко и грациозно что кодом ketmar'а, что моим старым. Попробовал сделать изображение поменьше даже (512х512, всего 4 фрейма получается), что бы мой мозг освоил это, но итоговые фреймы получились вообще совсем ужасными, я испугался, и удалил всё что было связано с порезаной картинкой.
П.с. была мысль что вдруг каким то образом некорректно читается основное изображение, но нет, всё корректно, и если в каждый фрейм запихнуть целиковое изображение, то видно что изображение прочиталось как надо и всё нормально отображается, как и ожидаем:
Image

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 01 Aug 2014, 11:50 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
ошибка в 17-й строке.

p.s. если этот фолклор неизвестен, то можно так: «телепаты в отпуске».


Top
 Profile  
 
PostPosted: 01 Aug 2014, 12:07 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
Телепат-mode off. Сори, туплю совсем :-D ну в целом я твой код просто перевёл на си и всё (как смог):
Code:
   int fw = round(width/frame_width);
   int fh = round(height/frame_height);

   for (int frame = 0; frame < fw*fh; frame++)
   {
      GLuint frameSize = frame_width*frame_height*bytesPerPixel;
      GLubyte *frameData = (GLubyte *)malloc(frameSize);

      int fx = (frame%fw)*frame_width*bytesPerPixel;
      int fy = (frame/fw)*frame_height*bytesPerPixel;
      int fs = fx+fy;

      for (y = 0; y < frame_height; y++)
      {
         for (GLuint i = 0; i < frame_width*bytesPerPixel; ++i)
            frameData[y*frame_width*bytesPerPixel+i] = imageData[fs+i];
         fs += width*bytesPerPixel;
      }

...
   }

И вот оно для одной строки работает, а для нескольких - что то ужасное творится...

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 01 Aug 2014, 12:15 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
нененене, так не пойдёт. давай оформляй минимальный запускающийся пример. эй, я сказал минимальный. который я могу скопипастить в редактор, сохранить, собрать и попыриться на то, как всё работает неправильно. иначе мы будем долго заниматься игрой в Святую Инквизицию.

p.s. а round там зачем? у тебя что, размеры не в целых?! O_O

короче, беда. давай, режь код, делай пример.

p.p.s. а что, просто взять одну текстуру и делать квады, указывая текстурные координаты в ней — некошерно уже?


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:12 
Offline

Joined: 19 Oct 2009, 22:10
Posts: 17
St.AnGer, может вот эту строку:
Code:
int fy = (frame/fw)*frame_height*bytesPerPixel;

заменить на
Code:
int fy = (frame/fw)*width*frame_height*bytesPerPixel;

?


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:19 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
э… да, это я там лажанулся. но не совсем там, вот так можно:
Code:
auto frmStart = fy*imageWidth+fx;

извиняюсь, был пьян, не виноватый я, оно само пришло.


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:26 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
ketmar wrote:
нененене, так не пойдёт. давай оформляй минимальный запускающийся пример. эй, я сказал минимальный. который я могу скопипастить в редактор, сохранить, собрать и попыриться на то, как всё работает неправильно. иначе мы будем долго заниматься игрой в Святую Инквизицию.

p.s. а round там зачем? у тебя что, размеры не в целых?! O_O

короче, беда. давай, режь код, делай пример.

p.p.s. а что, просто взять одну текстуру и делать квады, указывая текстурные координаты в ней — некошерно уже?

Минимальный пример будет завтра наверно, если я до ночи сегодняшнего дня не разберусь с этой фигнёй. Round там на всякий пожарный если вдруг int решит округлить в большую сторону (честно, не помню в какую сторону округляет сам тип int), размеры только в целых естественно (а местами и в целых беззнаковых). Я так и не пойму почему оно читает последнюю линию. Варианта 2 - или оно в самой тарге лежит в таком порядке (хотя какого хрена она может так лежать? Это бред, точно), или у меня почему то сразу идёт нехреновое смещение на 80% файла. Вообщем, вечером буду разбираться, если мой коллега не разберётся в этом раньше меня.

DezzTech wrote:
St.AnGer, может вот эту строку:
Code:
int fy = (frame/fw)*frame_height*bytesPerPixel;

заменить на
Code:
int fy = (frame/fw)*width*frame_height*bytesPerPixel;

?

Получаем выход за пределы массива imageData (основной картинки) :)

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:32 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
ketmar wrote:
э… да, это я там лажанулся. но не совсем там, вот так можно:
Code:
auto frmStart = fy*imageWidth+fx;

извиняюсь, был пьян, не виноватый я, оно само пришло.

воооот! Уже лучше, фреймы все прочитались как надо, хотя смещение какое то не такое идёт, ленты как будто снизу вверх читаются. Но дальше думаю разберусь :) спасибо!

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:42 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
снизу вверх — это потому, что тарга бывает в двух форматах: где «нулевая» строка внизу, и где «нулевая» строка вверху. cм. заголовок, байт нумер 0x11, бит нумер 5. если там нолик — это картинка «снизу вверх». если там единичка — это картинка «сверху вниз».

p.s. это… деление целого на целое всегда на выходе даёт целое.
Code:
int a, b;
int c = round(a/b);

перепишется вот в это:
Code:
int tmpi = a/b; /* assembler instruction idiv, actually */
double tmpd = (double)tmpi;
tmpd = round(tmpd); /* no-op, hehe */
c = (int)tmpd;

зачем?


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:54 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
ketmar wrote:
p.s. это… деление целого на целое всегда на выходе даёт целое.

Да, чойт я тупанул тут, round ненужен, ну я его и так уже убрал. Я этим round-ом хотел сделать проверку на правильное количество строк/столбцов фреймов в картинке, чтобы если имеем картинку на 384 пикселя в высоту, а фрейм допустим 256 пикселей, то что бы оно не округлило до 2-х строк ни в каком случае (потому и сказал, что не знаю как int округлится в данном случае - вверх или вниз, потому что 384/256 = 1.5). Кажись пора отдохнуть от программирования :mrgreen:

ketmar wrote:
снизу вверх — это потому, что тарга бывает в двух форматах: где «нулевая» строка внизу, и где «нулевая» строка вверху. cм. заголовок, байт нумер 0x11, бит нумер 5. если там нолик — это картинка «снизу вверх». если там единичка — это картинка «сверху вниз».

Вот это сейчас проверю.

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 01 Aug 2014, 13:58 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
а там нечего проверять, 99.9% тарг всегда «снизу вверх», по старому стандарту только так и можно было. собственно, таргу «сверху вниз» встретить — это очень постараться надо.

p.s. для положительных целых значений можно считать, что дробная часть при делении отбрасывается нафиг.


Top
 Profile  
 
PostPosted: 02 Aug 2014, 09:32 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6562
Location: \\NEGRO
St.Anger, очень симпатичный серый тварик. Он откуда такой? Можно попросить спрайтшит?

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 02 Aug 2014, 12:17 
Offline
Приколист
User avatar

Joined: 31 Oct 2009, 15:55
Posts: 2095
Jabberwock wrote:
St.Anger, очень симпатичный серый тварик. Он откуда такой? Можно попросить спрайтшит?

Арчвайл из Doom 3. Выдрать его и остальное можно из этого мода

_________________
Amazing things will happend soon...


Top
 Profile  
 
PostPosted: 02 Aug 2014, 16:13 
Offline
Приколист
User avatar

Joined: 01 Jan 2011, 00:39
Posts: 1946
Location: Полигон НТИИМ
Или попросить меня отрендерить.

_________________
Image DM2002 testing
Image Total Destruction - F
EDODLΔ


Top
 Profile  
 
PostPosted: 03 Aug 2014, 08:47 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
Jabberwock wrote:
St.Anger, очень симпатичный серый тварик. Он откуда такой? Можно попросить спрайтшит?

Собственно да, Трейн правильно сказал, я монстров из DooM 3 дёргаю. Ну только не из модов, а сам учусь :) вроде получается пока что :) если надо будет могу скинуть все имеющиеся фреймы имеющихся сейчас монстров (кибер, имп, рыцарь, пинки, манкубус). Выдрал анимации сна (idle), ходьбы и первой атаки (ведь в третьем думе почти все монстры имеют 2 атаки). Ппозже буду выдирать всё остальное, когда окончательно разберусь с чтением многоленточных тга :)

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 25 Aug 2014, 11:01 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
Кхм кхм... Буду краток.

Это снова я, со своим (нашим) несчастным движком ksTech2d. Долгое время им никто не занимался, всё застопорилось после добавления теней (у всех появились неотложные дела и работы). Не так давно я пытался запилить монстров из дума3. Ну, несколько штук сделать получилось.

Список почти полностью готовых монстров невелик:
Hellknight
Imp

Список монстров с тремя анимками (сон, ходьба, стрельба):
Cyberdemon
Archvile
Revenant
Mancubus

В данной сборке на карту добавлено 3 монстра - имп, хеллкнайт, кибердемон. Из них активируются только хеллкнайт и имп (кибер пока что мёртвым грузом стоит, но это вечером сегодня исправлю).

Внимание!!!! Ввиду довольно большого размера текстур (256х256 каждый кадр у монстра, и плюсом идут текстуры стен (малое количество) из третьего Дума), при запуске проект кушает за спасибо 500 метров оперативы. Проверял на древнем нетбуке (Asus eeepc 901 с гигом оперативы), всё работает хорошо (на нём 29-30 фпс спокойно выдаёт при 60 упс). На современном железе проблем не наблюдается никаких, стабильные 60 фпс/60упс.

Скачать! (v0.05)
ПыСы залил на яндекс.диск, на форум архив в 35 метров не влазиет. Скачать можно как всегда в первом посту, тут и у меня в подписи.
ПыСыСы игра всё ещё не умеет стрелять/бить/унижать. Зато имп умеет прыгать на игрока при активации :)

Image
Image

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 25 Aug 2014, 22:13 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6562
Location: \\NEGRO
It... looks... beautiful! Но есть огрехи с физикой: можно лазить по стенам и не всегда работает прыжок.

Вопрос: а вот ты допилишь этот движок, насколько он будет портабельный?

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 256 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13  Next

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
doom2d.org, since 2007