Четверг, 18 Сентября 2025, 22:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
AlkoshaДата: Пятница, 07 Марта 2014, 12:49 | Сообщение # 21 | Тема: Как рипнуть скелетку из игры на UE3 ?
участник
Сейчас нет на сайте
Приветик, мальчишки))))
Как выдрать модели со скелетной анимацией из игор на UE3 (в частности интересует Batman AC), чтоб можно было в дальнейшем импортнуть в 3дмакс, например ?)))
Какими утилитами ?))

Зачастую выдирают онли моделки да текстурки, без анимации)))
А вот как именно с анимашкой выдрать?))))))
AlkoshaДата: Суббота, 08 Марта 2014, 11:54 | Сообщение # 22 | Тема: Как рипнуть скелетку из игры на UE3 ?
участник
Сейчас нет на сайте
Давно качал этот вьювер отсюда:
анрил вьювер

И ГУЙ к нему (с какого-то буржуйского сайта, уже и не помню откуда именно)
вот

Но почему-то он не вскрывает бэтмановские модельки.

Добавлено (07.03.2014, 23:37)
---------------------------------------------
Но вот интересно, как им котобабу удалось загрузить...


Может то из-за сырого GUI ?

Добавлено (08.03.2014, 04:46)
---------------------------------------------
А всё, разобрался. Через командную строку всё нормально открывается.

Добавлено (08.03.2014, 11:54)
---------------------------------------------
Только вот не могу найти анимашки с катсцен (помимо пререндеренных, там есть ещё на движке).
И с лицевой анимацией чё-то не то. Ротяка слиплась, а челючсть при этом гуляет.

AlkoshaДата: Суббота, 15 Марта 2014, 19:36 | Сообщение # 23 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Цитата JunkerKun ()
Это библиотека для разработки рейл-тайм 3Д приложений, 2Д там достаточно рудиментарно.

за счёт того, что спрайты (точнее текстурки, натянутые на параллеллепипед с размерами x*y*0) находятся в трёхмерном пространстве и в зависимости от ракурса камеры можно сделать эффект параллакс-скроллинга. Ну и по ходу можно влепить ещё чёнить трёхмерного в 2д мир.
набросок

Цитата JunkerKun ()
Тип FloatRect опять же принадлежит SFML, у типа rect<T> из Irrlicht нет никакого поля "left", у него есть поле "position" (или как-то так), которое возвращает двухмерный вектор с положением прямоугольника.

Эт я уже заметил

Цитата JunkerKun ()
Вывод - не занимайся ерундой, а просто продолжай делать на SFML. Irrlicht не для 2Д был написан.

С радостью бы... Но, во-первых, не могу толком настроить код::блокс на эту либу. Делал как тута. компилит нормально, но линкует как-то не так, ибо при запуске экзешника ругается на libgcc_s_dw2-1.dll (версия кодблокса 10.05).
Во-вторых, я собираюсь динамически менять цветовую гамму на слоях бэкграунда \ спрайтах. Например, в рэтро-приставках это делалось изменением набора цветов палитры видеоконтроллера. В Irrlicht'e попробую через шейдеры (правда малость геморно).

SFML , как я понял, некое подобие SDL. То есть подобной функции там нет, это значит, что придётся попиксельно считывать картинку и по определённому условию задавать цвет пикселя, выводя на экран. Иными словами, ЦП будет адово нагружен.


Сообщение отредактировал Alkosha - Суббота, 15 Марта 2014, 19:40
AlkoshaДата: Суббота, 15 Марта 2014, 21:07 | Сообщение # 24 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Цитата JunkerKun ()
Это можно сделать и в 2Д просто высчитывая координаты бэкграунда как координаты_камеры/2 (хотя по факту лучше по формуле перспективы, которую можно найти на той же википедии)

Та не.. Я имел ввиду не плоскостной параллакс. А примерно такой (хотя тут такой эффект достигнут за счёт скроллинга отдельных строк с разной итерацией)

Цитата JunkerKun ()
Ну это уже не из-за либы, согласись

Ну дык, это скорее всего из-за версии mingw, или хз из-за чего. Факт в том, что банально застопорился на настройке компилятора.

Цитата JunkerKun ()

Бред, ибо см. выше про шейдеры и функцию смешения цветов.

Я особо не вникал, как устроен SFML, просто лишь предположил, что он схож по принципу с SDL. Ни о каких шейдерах на нём я не был в курсе.

Добавлено (15.03.2014, 21:07)
---------------------------------------------
Даже русскоязычного комьюнити на эту SFML похоже, что нету...

AlkoshaДата: Понедельник, 17 Марта 2014, 14:07 | Сообщение # 25 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Ладно, в таком случае как проапгрейдить версию компилятора GCC в код-блоксе ?

Добавлено (17.03.2014, 12:48)
---------------------------------------------
А, не. Тут указывается, что для конкретной версии gcc нужна конкретная версия SFML.... попробую исходники пересобрать, авось прокатит

Добавлено (17.03.2014, 14:07)
---------------------------------------------
Только как создать в кодблоксе проект для компиляции smlf ? выбрать console aplication , а затем добавить в этот проект add files все cpp hpp файлы во всех подкаталогах исходника ?


Сообщение отредактировал Alkosha - Понедельник, 17 Марта 2014, 14:07
AlkoshaДата: Вторник, 18 Марта 2014, 13:39 | Сообщение # 26 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Цитата
If you dynamically link the C runtime on Windows, you may need to put the following DLL files in your project directory:
- libgcc_s_dw2-1.dll
- libstdc++-6.dll


взято отсюда

я так и поступил, скачал эти две ДЛЛ-ки, поместил в каталог с экзэшником... теперь стартует , и... "вындавс пытается найти способ устранения ошибки" (что-то в этом роде). Причём та же ситуация и на прекомпилированных экзэмплах, поставляемых в комплекте с движком.
Быть может это от того, что сама вындавс -- 7-ка. В общем хз.

Теперь-то вы понимаете почему я решил всё-таки перевести исходник под ту либу, которая и компилится, и запускается безупречно ?


Сообщение отредактировал Alkosha - Вторник, 18 Марта 2014, 13:40
AlkoshaДата: Среда, 19 Марта 2014, 00:47 | Сообщение # 27 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Цитата Storm54 ()
DLL самого иррлихта в чем скомпилирована? Обычно идет 2 версии: GCC и Visual Studio. Если к exe, скомпилированному в GCC, поместить дллку студии, то программа вылетает. И наоборот.

)

Так дело в том, что с иррлихтом у меня как раз таки нет проблем... Проблема именно с SFML.

Добавлено (19.03.2014, 00:45)
---------------------------------------------
Либы SFML тоже для компилятора mingw gcc качал.

Добавлено (19.03.2014, 00:47)
---------------------------------------------
Цитата Storm54 ()
Если рассматривать екземплы, то все они требуют папки с ресурсами. Возможно, что она лежит не там, где нужно.

Не смотря на то, что я ацкий ламер, про такие вещи я осведомлён. Тем паче для примера типа "хыллоу ворлд", где рисуется векторная фигура закрашенного кружочка, никаких ресурсов не требуется, ибо это процедурная графика.


Сообщение отредактировал Alkosha - Среда, 19 Марта 2014, 00:58
AlkoshaДата: Пятница, 21 Марта 2014, 00:52 | Сообщение # 28 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Цитата First ()
сам юзаю sfml, компилится и работает норм

В кодблоксе компилишь?

Добавлено (21.03.2014, 00:52)
---------------------------------------------
Ну вот всё последовательно как и тут делал. И версия код-блокса такая же, и версия SFML. И у того штриха тоже 7-ка...

Всё равно такое вот:

AlkoshaДата: Понедельник, 24 Марта 2014, 15:24 | Сообщение # 29 | Тема: помогите перевести исходник под иррлихт... пожалуйста...
участник
Сейчас нет на сайте
Цитата JunkerKun ()
Запусти дебаггер, он тебе и покажет строку кода и ошибку,


Машинного кода ведь ? Насколько мне известно, дебаггер отображает лишь дизассемблированную прогу и состояния регистров процессора.

Добавлено (24.03.2014, 15:24)
---------------------------------------------
Цитата JunkerKun ()
Либо ДЛЛ не от GCC


Брал отсюда в самой верхней таблице с боковой надписью "виндовс" 5-ая строка сверху, в первом столбце (GCC 4.7 MinGW (DW2) - 32 bits) видовс у меня 32-ух разрядная.
http://www.sfml-dev.org/download/sfml/2.0/


Сообщение отредактировал Alkosha - Понедельник, 24 Марта 2014, 15:25
AlkoshaДата: Суббота, 10 Мая 2014, 02:50 | Сообщение # 30 | Тема: Масштабирование содержимого экрана XNA 4.0
участник
Сейчас нет на сайте
Всё пытаюсь начать создание 2д платформера, но до сих пор не могу определится толком на основе чего он будет рендериться.
Основные требования - масштабирование (типа, камера приближается\удаляется), а так же изменение палитры текстуры.
Но и помимо этого готовенький исходник, в котором описаны прыжок по параболе с гравитацией, да коллизия с матрицей уровня.
Из туторов нашёл только SMLF, но заставить его компилиться в код-блоксе мне так и не удалось (ранее создавал уже тему на этом форуме)

Потому я решил обратить взор на XNA.
Тут уже по туторам описано создание платформера с коллизией. Так же в XNA есть возможность задать "светофильтр" на спрайте (но там дефайнами, то бишь заранее заданными переменными, пока не знаю как менять цвет "светофильтра" именно числовым значением).

Впрочем, это всё потом... В первую очередь интересует каким образом можно zoom-ировать картинку в XNA (разрешение игрового окна константное , разумеется), и возможно ли вообще такое?


Сообщение отредактировал Alkosha - Суббота, 10 Мая 2014, 02:51
AlkoshaДата: Суббота, 17 Мая 2014, 17:29 | Сообщение # 31 | Тема: Ошибка в компоновщика C::B
участник
Сейчас нет на сайте
Скачал SDL 2.3 для mingw.
Установил кодблокс 13.12 с mingw в комплекте.
В билд-опшонс -> компилер указал путь к инклудам (D:\engines\SDL2-devel-2.0.3-mingw\SDL2-2.0.3\i686-w64-mingw32\include) и во вкладке линкер путь к либам (D:\engines\SDL2-devel-2.0.3-mingw\SDL2-2.0.3\i686-w64-mingw32\lib)

В линкер-сеттингс поле озэр линкер опшонс : -lmingw32 -lSDL2main -lSDL2

Иногда компилируется и стартует программа, даже спрайтики удалось вывести.
А иногда происходит ошибка в ld.exe (компоновщик):

Код
||=== Build: Debug in Platform20 (compiler: GNU GCC Compiler) ===|
ld.exe||cannot open output file Platform20.exe Permission denied|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


Приходится по нескольку раз перезапускать кодблокс.
Чтение-запись на диск разрешены, орудую под правами администратора.
Другие проекты компилируются и стартуют как и положено.
А с этим SDL2 какая-то аномалия.

Добавлено (17.05.2014, 17:29)
---------------------------------------------
Ах да. ОС - Windows 7 x86

Сообщение отредактировал Alkosha - Суббота, 17 Мая 2014, 17:27
AlkoshaДата: Воскресенье, 18 Мая 2014, 10:12 | Сообщение # 32 | Тема: Ошибка в компоновщика C::B
участник
Сейчас нет на сайте
Цитата
Ты закрываешь программу перед тем, как перекомпилировать?


Ессно. Причём как и по закрытию на виндоузный крестик в углу, так и по "press any key". Та и в процессах программа не сидит.
AlkoshaДата: Воскресенье, 25 Мая 2014, 10:40 | Сообщение # 33 | Тема: Ошибка в компоновщика C::B
участник
Сейчас нет на сайте
Цитата froex ()
Открой диспетчер задач и найди там свой процесс.


Цитата Alkosha ()
Та и в процессах программа не сидит.

Добавлено (25.05.2014, 10:40)
---------------------------------------------
Вот тут чуваки тоже столкнулись с подобной шляпенцией.
cannot open output file, permission denied

Но там они вроде как до антивиря др.Вэба докопались.
У меня eset smart security 4. Я его на момент компиляции и запуска программы пробовал отключить, всё равно через раз нет доступа к собираемому *.exe
Причем тоже как и у тех челов, через некоторое время можно снова компилировать проект не выходя из кодблокса.

Какая-то служба винды наверное лочит.

AlkoshaДата: Воскресенье, 08 Июня 2014, 12:53 | Сообщение # 34 | Тема: Ошибка в компоновщика C::B
участник
Сейчас нет на сайте
Не, ну это конкретная шляпенция.
Удалял антивирусник. Пробовал без него - тоже нет доступа к собираемому файлу.
Более того, теперь и на с++ builder такой же бадыль.

Хотя где-то пол-года назад ничего такого не было ни в c::b , ни в билдере , ни в dev-CPP.

И в службах не могу вычислить, какая из них задерживает файл.


Сообщение отредактировал Alkosha - Воскресенье, 08 Июня 2014, 13:10
AlkoshaДата: Среда, 11 Июня 2014, 14:45 | Сообщение # 35 | Тема: Физика 2д платформера.
участник
Сейчас нет на сайте
Платформер у меня обрабатывается по битмапе, в смысле столкновения персонажа с граундом.

Вот пока как-то кривовато это дело происходит, а именно выталкивание персонажа из под "земли".

То после прыжка с высокой платформы он на половину застряёт в ячейках, и вдоль них может ходить и так же можно продолжать прыгать на том же уровне, то как раз впритык ячейке состыковка... ай, короче. Кажись я непонятно пояснил.
Рабочая программа прилагается, дабы глянуть поведение персонажа (управление ADW)


Вот класс физики.
Собственно запара в функции gravitation().

Код
class Physix
{
public:

void wallcollis()
{
            int centery=pers.y/32;
int centerx=pers.x/32;
// стена слева
         if(collisMap.bitmap[centery][centerx-1]=='B'&&collisMap.bitmap[centery-1][centerx-1]=='B')
                        {
                        if (pers.dx<0)
                            {

                            pers.dx=0;

                            }
                        }
// стена справа
         if(collisMap.bitmap[centery][centerx+1]=='B'&&collisMap.bitmap[centery-1][centerx+1]=='B')
                        {
                        if (pers.dx>0)
                            {

                            pers.dx=0;

                            }
                        }
                        if(pers.onGround)pers.x+=pers.dx;
}

void gravitation()
{
        int centery=pers.y/32;
int centerx=pers.x/32;
        if (!pers.onGround)
            {
            pers.dy=pers.dy+0.9;
            pers.x+=pers.dx;
            }
            pers.y+=pers.dy;
                pers.onGround=false;

                    if(collisMap.bitmap[centery+1][centerx]=='B')
                        {pers.onGround=true;

                        if (pers.dy>0)
                            {
                            pers.dy=0;

                            }
                        }

            if(collisMap.bitmap[centery][centerx]=='B')
                        {pers.onGround=true;
                         pers.y-=8;
                        if (pers.dy>0)
                            {
                            pers.dy=0;
                            }
                        }

}

};
Physix phys;


Добавлено (11.06.2014, 14:44)
---------------------------------------------
Где dx dy - ускорения по соответствущим осям.
onGround - флаг нахождения на земле.
bitmap[][] - двумерный массив char'ов , где символ "B" обозначает земную твердь.
ну в общем и всё.

Добавлено (11.06.2014, 14:45)
---------------------------------------------
Подозрение на погрешности при переводе float'a в int


Сообщение отредактировал Alkosha - Среда, 11 Июня 2014, 14:54
AlkoshaДата: Пятница, 20 Июня 2014, 13:50 | Сообщение # 36 | Тема: Система частиц. Помогите исправить...Пожалуйста
участник
Сейчас нет на сайте
Пока хочу реализовать для начала эффект дождя.

Сперва инициализирую
начальное направление частиц, а так же спрайт (в дальнейшем ещё добавлю переменные для размеров эмиттера и плотности испускания частиц)
rain.init("img//kaplya.png",-3,3,3,30);


Затем в цикле обновление координат вызываю функцию rain.update()

Мною задумывалось так, если флаг rain.enable= труЪ, то эмиттер испускает частицы.
else эмиттер прекращает испускать частицы, но если хотя бы одна частица "жива" то апдейтить её координаты.
Но тут короче криво условие сделано.
Та и вообще в целом весь подход мне кажется не совсем корректным, точнее совсем не корректным.

Код
class myParticles
{
public:
bool enable=false;

struct partic
{
int starty, startx ;

float x;
float y;
float dx,dy;
int timeToDie;
};

private:
static const int maxnum=200;
SDL_Rect rect;
partic partics[maxnum];
float maxSpeedy, minSpeedy, minSpeedx, maxSpeedx;

public:
SDL_Texture * particTex;

void init(char* tex,float minx, float maxx, float miny,float maxy)
{
         maxSpeedy=maxy;
         minSpeedy=miny;
         minSpeedx=minx;
         maxSpeedx=maxx;
         loadTex(tex);
        for(int i=0;i<maxnum;i++)
         {
             partics[i].startx=rand()%800;
             partics[i].starty=-10;
             partics[i].x= partics[i].startx;
             partics[i].y=partics[i].starty;
             partics[i].dx=rand()%(int)(maxSpeedx-minSpeedx)+minSpeedx;
             partics[i].dy=rand()%(int)(maxSpeedy-minSpeedy)+minSpeedy;
             partics[i].timeToDie=rand()%20+20;
         }
}

         void loadTex( char* filename )
         {
         particTex = IMG_LoadTexture(renderer, filename);
         SDL_QueryTexture(particTex, NULL, NULL, &rect.w, &rect.h);
         }

         void update()
         {

             for(int i=0;i<maxnum;i++)
                 {
                  if(enable)partics[i].timeToDie--;
                     if(partics[i].timeToDie<=0&&!enable)partics[i]={0};

                         if(partics[i].timeToDie<=0&&enable) {
                         partics[i].startx=rand()%800;
                         partics[i].starty=-10;
                         partics[i].x=partics[i].startx;
                         partics[i].y=partics[i].starty;
                         partics[i].dx=rand()%(int)(maxSpeedx-minSpeedx)+minSpeedx;
                         partics[i].dy=rand()%(int)(maxSpeedy-minSpeedy)+minSpeedy;
                          partics[i].timeToDie=rand()%20+20;
                         }
                      if(partics[i].timeToDie>0||enable){
                     partics[i].y+=partics[i].dy;
                     partics[i].x+=partics[i].dx;
                      }

           }
         }

         void display()
         {
             SDL_RenderSetScale(renderer,1,1);
             SDL_SetTextureBlendMode(particTex, SDL_BLENDMODE_ADD);
               for(int i=0;i<maxnum;i++)
                 {

                     SDL_Rect DestRs;
                     DestRs.x=partics[i].x;
                     DestRs.y=partics[i].y;
                     DestRs.w=rect.w;
                     DestRs.h=rect.h;
                     SDL_RenderCopy(renderer, particTex ,  &rect, &DestRs);

                 }

         }
};
myParticles rain;


Добавлено (20.06.2014, 13:09)
---------------------------------------------
Искал в гугле чё-нить по частицам, так там такие программиздские ухищрения. Есть даже примеры и на шейдерах и на распараллеливании.

Мне бы чё-нить попроще. Типа того г*вн*-кода, написанного мною.

Добавлено (20.06.2014, 13:50)
---------------------------------------------
Изначально у меня вообще была проверка "умершей"частицы не по "timeToDie!!!!" а по границам, за которые попапдает частица.
Но тогда вообще было так, если !enable, то "дождь" резко исчезал.
Я вот уже подумываю, что надо было так и оставить и при !enable попросту альфа-канал всех частиц разом постепенно уменьшать от 255-ти до 0-ля.


Сообщение отредактировал Alkosha - Пятница, 20 Июня 2014, 13:52
AlkoshaДата: Пятница, 20 Июня 2014, 22:07 | Сообщение # 37 | Тема: Физика 2д платформера.
участник
Сейчас нет на сайте
Сейчас он немного отличается от того, что было в первом посте.
И класс физики тож чуток изменился, вроде.

Код
class Physix
{
public:

void wallcollis()
{
         int centery=pers.y/32;
int centerx=pers.x/32;
// стена слева
      if(collisMap.bitmap[centery][centerx-1]=='B'&&collisMap.bitmap[centery-1][centerx-1]=='B')
                     {
                     if (pers.dx<0)
                         {

                         pers.dx=0;

                         }
                     }

// стена справа
      if(collisMap.bitmap[centery][centerx+1]=='B'&&collisMap.bitmap[centery-1][centerx+1]=='B')
                     {
                     if (pers.dx>0)
                         {

                         pers.dx=0;

                         }
                     }
                     if(pers.onGround)pers.x+=pers.dx;

//сверху
  if(collisMap.bitmap[centery-1][centerx]=='B')
                     {
                     if (pers.dy<0)
                         {

                         pers.dy=0;

                         }
                     }

}

void gravitation()
{
     int centery=pers.y/32;
int centerx=pers.x/32;
     if (!pers.onGround)
         {
             pers.dy=pers.dy+1;
         pers.x+=pers.dx;
         }
         pers.y+=pers.dy;
         pers.onGround=false;
                 if(collisMap.bitmap[centery+1][centerx]=='B')
                     {pers.onGround=true;
                     if (pers.dy>=0)
                         {pers.y=centery*32;
                         pers.dy=0;

                         }
                     }
         if(collisMap.bitmap[centery][centerx]=='B')
                     {pers.onGround=true;
                      pers.y=centery*32-1;
                     if (pers.dy>0)
                         {
                         pers.dy=0;

                         }
                     }

}

};
Physix phys;


Нынешнее состояние моего горе-платформера.
Сдёрни

Добавлено (20.06.2014, 22:07)
---------------------------------------------
Всё равно по наклонным поверхностям он рахитно передвигается.

AlkoshaДата: Суббота, 21 Июня 2014, 20:00 | Сообщение # 38 | Тема: Градиент
участник
Сейчас нет на сайте
Допустим, на вход функции поступают параметры для цветовых переходов от одного цвета до другого.

Вот к примеру color1={r1,g1,b1}; color2={r2,g2,b2}
тут цикл for=0 to len // где len - ширина градиента.
затем линиями line(x1,y1,x2,y2) с цветовыми переходами от color1 до color2.
Как определить для каждого шага в цикле цвет перехода?


Сообщение отредактировал Alkosha - Суббота, 21 Июня 2014, 20:01
AlkoshaДата: Понедельник, 23 Июня 2014, 13:59 | Сообщение # 39 | Тема: Физика 2д платформера.
участник
Сейчас нет на сайте
Цитата RomanNVKZ ()
Кстати, на чем пишешь?


Очевидо, что на Бейсике. sad
AlkoshaДата: Понедельник, 23 Июня 2014, 14:58 | Сообщение # 40 | Тема: Физика 2д платформера.
участник
Сейчас нет на сайте
Цитата Saitei ()
тык <- там есть ответ


Ну дык, если ячейки как в Марио раскидать, то у меня всё в порядке.

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

Добавлено (23.06.2014, 14:58)
---------------------------------------------
Вот в диззи фантастик эдвэнче тоже по двумерному массиву определялась коллизия, и там тоже заметно эти ячейки, тем не менее, там он гораздо плавнее двигался по склонам.

Сообщение отредактировал Alkosha - Понедельник, 23 Июня 2014, 14:56
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг