Суббота, 20 Сентября 2025, 16:46

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
AlkoshaДата: Среда, 07 Января 2015, 19:17 | Сообщение # 141 | Тема: Помогите рачитать оффсет отражённой текстуры.
участник
Сейчас нет на сайте
Хыыы... Прикольная апичатка в названии темы.

Добавлено (07 января 2015, 19:17)
---------------------------------------------
По совету Снэйка уже более-менее нормально работает. Только когда камера двигается по Y, отражённая текстура немного "плывёт". Зато по Z строго на фиксированном месте , как и положено.
Может на текстуре "воды" нормально будет смотреться.

AlkoshaДата: Среда, 07 Января 2015, 20:09 | Сообщение # 142 | Тема: Помогите рачитать оффсет отражённой текстуры.
участник
Сейчас нет на сайте
Цитата DungeonLord ()
dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2;


В этом случае есть смещение при зуме.
AlkoshaДата: Среда, 07 Января 2015, 23:47 | Сообщение # 143 | Тема: Помогите рачитать оффсет отражённой текстуры.
участник
Сейчас нет на сайте
dstrect.y= dstrect.y + 10 * cum.z * cum.y - cum.y * 2 * cum.z;

ГИФ

dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2;

ГИФ

dstrect.y= dstrect.y + 200 * cum.z - cum.y * 2 * cum.z;

ГИФ
AlkoshaДата: Четверг, 08 Января 2015, 11:38 | Сообщение # 144 | Тема: Помогите рачитать оффсет отражённой текстуры.
участник
Сейчас нет на сайте
Цитата HPlusDiese ()
Весело.


Не пойму иронии. Вам известен иной метод?
Изначально я зумил рендерер, но он масштабируется относительно начала декаротвых координат (левого верхнего угла), то есть мне нужно было дополнительно смещать объекты на игровом поле. Рендерить всё в текстуру и после этого извращаться с ней как угодно - гораздо проще.
AlkoshaДата: Четверг, 08 Января 2015, 13:07 | Сообщение # 145 | Тема: Помогите рачитать оффсет отражённой текстуры.
участник
Сейчас нет на сайте
Цитата DungeonLord ()
чтобы отражение не наползало на оригинал


Не в этом дело. Я не планирую делать так, чтоб рокИр окунался по пояс в воду. Там просто когда камера двигается по Y само отражение немного тоже двигается.

Добавлено (08 января 2015, 13:07)
---------------------------------------------
Да ладно. И так сойдёт. Слишком много времени уделяю обычному не геймплейному декору.

AlkoshaДата: Пятница, 09 Января 2015, 20:06 | Сообщение # 146 | Тема: Помогите рачитать оффсет отражённой текстуры.
участник
Сейчас нет на сайте
Цитата HPlusDiese ()
projection matrix


И ? чего-то не встречал в SDL-е ничего связанного с матрицами.

Цитата HPlusDiese ()
Ты ещё наверное и на FFP всё делаешь?


Что за аббревиатура? Fixed Function Pipeline ?


Сообщение отредактировал Alkosha - Суббота, 10 Января 2015, 17:24
AlkoshaДата: Воскресенье, 11 Января 2015, 14:51 | Сообщение # 147 | Тема: Сегментная анимация.
участник
Сейчас нет на сайте
Разбил персонажа на отдельные спрайты-сегменты. Теперь надо бы заставить их слаженно двигаться.
На мегадрайве зачастую была подобного рода анимация.
Особенно в играх от Treasure: видео №1, видео №2
Или Konami: Видео №1, видео №2

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

Пока вот что получается (пока лишь на примере двух ключевых кадров):
ГИФ

Мне кажется, сам подход не корректный.
Код
class myKingOfHell
{
       SDL_Rect Dest;
       SDL_Texture* molottex;
       float molotx,moloty;
       SDL_Texture* torsotex;
       float torsox,torsoy;
       SDL_Texture* jawstex;
       float jawsx,jawsy;
       SDL_Texture* hooktex;
       float hookx,hooky;

       int animkey;
       float dx,dy;

       void endpoint(float nowX, float nowY, float endX, float endY, float speed)
       {
           auto angle=-atan2(nowX-endX,nowY-endY)/3.14*180;
           dx=sin(angle*3.14/180)*speed;
           dy=-cos(angle*3.14/180)*speed;
       }

public:
       float x=400,y;
       int state=1; // состояние 0=disable 1= idle 2= ползёт 3= атака

       myKingOfHell()
       {
           animkey=0;

           torsox=0;
           torsoy=0;
           molotx=15;
           moloty=190;
           jawsx=25;
           jawsy=100;
           hookx=110;
           hooky=100;
       }

       void update()
       {
           if(state==1)
               {
                   if(animkey==0)
                       {
                           endpoint(jawsx,jawsy,37,107,0.2);
                           jawsx+=dx;
                           jawsy+=dy;

                           endpoint(molotx,moloty,15,190,0.4);
                           molotx+=dx;
                           moloty+=dy;

                           endpoint(hookx,hooky,128,140,0.5);
                           hookx+=dx;
                           hooky+=dy;
                           if(hookx>=128)animkey=1;
                       }

                   if(animkey==1)
                       {
                           endpoint(jawsx,jawsy,25,100,0.2);
                           jawsx+=dx;
                           jawsy+=dy;

                           endpoint(molotx,moloty,20,200,0.2);
                           molotx+=dx;
                           moloty+=dy;

                           endpoint(hookx,hooky,110,100,1);
                           hookx+=dx;
                           hooky+=dy;

                           if(hookx<=110)animkey=0;
                       }

               }
       }

       void  display()
       {
           if(molottex==NULL)
               {
                   molottex = IMG_LoadTexture(renderer, "img//koh1.png");
               }
           if(torsotex==NULL)
               {
                   torsotex = IMG_LoadTexture(renderer, "img//koh2.png");
               }
           if(jawstex==NULL)
               {
                   jawstex = IMG_LoadTexture(renderer, "img//koh3.png");
               }
           if(hooktex==NULL)
               {
                   hooktex = IMG_LoadTexture(renderer, "img//koh4.png");
               }

           Dest.x=molotx-cum.x+x;
           Dest.y=moloty-cum.y+y;
           Dest.w=341;
           Dest.h=208;
           if(Dest.x>-341&&Dest.x<800)
               {
                   SDL_RenderCopy(renderer, molottex ,  NULL, &Dest);
               }

           Dest.x=torsox-cum.x+x;
           Dest.y=torsoy-cum.y+y;
           Dest.w=554;
           Dest.h=453;
           if(Dest.x>-554&&Dest.x<800)
               {
                   SDL_RenderCopy(renderer, torsotex ,  NULL, &Dest);
               }
           Dest.x=jawsx-cum.x+x;
           Dest.y=jawsy-cum.y+y;
           Dest.w=143;
           Dest.h=142;
           if(Dest.x>-143&&Dest.x<800)
               {
                   SDL_RenderCopy(renderer, jawstex ,  NULL, &Dest);
               }

           Dest.x=hookx-cum.x+x;
           Dest.y=hooky-cum.y+y;
           Dest.w=393;
           Dest.h=275;
           if(Dest.x>-393&&Dest.x<800)
               {
                   SDL_RenderCopy(renderer,hooktex ,  NULL, &Dest);
               }

       }

};
myKingOfHell KOH;


animkey = номер ключевого кадра.
Функция endpoint() отвечает за перемещение отдельно взятого спрайта. Тут ещё вручную задаю скорость перемещения каждого. Было бы неплохо, если б скорость сама определялась между ключевыми кадрами.

Добавлено (11 января 2015, 14:51)
---------------------------------------------
Там когда сегмент достигает до конечной - дрожит. Размах этого дрожания зависит от скорости. Вот эту траблу надо бы убрать.

Сообщение отредактировал Alkosha - Воскресенье, 11 Января 2015, 13:54
AlkoshaДата: Воскресенье, 11 Января 2015, 21:42 | Сообщение # 148 | Тема: Моделирование "волос". (3ds max)
участник
Сейчас нет на сайте
Как замоделить волосы полигонами ? А самое главное, правильно затекстурить с альфа-каналом. И так, чтоб импортировать в дальнейшем в Юньку.
Или может есть уже готовая модель волосни с ригом?

Волосы хочу примерно такие (только в 3д, разумеется):
AlkoshaДата: Суббота, 17 Января 2015, 16:50 | Сообщение # 149 | Тема: Концепт-арт
участник
Сейчас нет на сайте
Концепт к игре на хз-спектрум.


Сама игра:
http://www.worldofspectrum.org/infoseekid.cgi?id=0027211

Добавлено (15 января 2015, 22:51)
---------------------------------------------
Пропорции головы, кистей рук сейчас бы подправил. В 2011-ом ещё жутко косячил с человекоподобными пропорциями.

Добавлено (17 января 2015, 16:50)
---------------------------------------------
4 года назад назад рисовал концепты к игре, где в главной роли была бы тёлочка киборг.
Но в тридэ даже спустя такое время не могу ничего толкового замоделить.

В частности застопорился на текстурировании, риггинге.



Сообщение отредактировал Alkosha - Суббота, 17 Января 2015, 16:50
AlkoshaДата: Вторник, 20 Января 2015, 00:19 | Сообщение # 150 | Тема: Code::Blocks + irrlicht
участник
Сейчас нет на сайте
Цитата set16 ()
Как исправить?


пересобрать исходник под ту версию GCC, то работает в твоём код-блоксе. Не?
AlkoshaДата: Вторник, 10 Февраля 2015, 11:00 | Сообщение # 151 | Тема: Глитч SDL2
участник
Сейчас нет на сайте
На разных компьютерах проверял работоспособность программы. Всё было гладенько.
затем в моей программе появились операции с рендерингом в текстуру. Не знаю, дело ли в операционной системе, или же непосредственно в самихз драйверах.
Короче, на компах с семёрками (32 и 64 битными) и восмёрками работает корректно (на двух ноутбуках проверял, и на одном десктопе.)
Запускаю на одной машине с вин XP - программа тут же крашит при вызове функции TargetTexture.
На другой машине с win XP - такие вот глюки получаются адовые:
ГИФ

функция SDL_GetError на машинах, где 7-ки 8-ки - молчит.
А на проблемных компах пишет примерно одно и то же в консоли:


Смена типа рендерера direct3d на opengl не помогает. Ошибка та же.
AlkoshaДата: Суббота, 14 Февраля 2015, 14:18 | Сообщение # 152 | Тема: Глитч SDL2
участник
Сейчас нет на сайте
Не. По-моему, не ок. Речь идёт не о музыкальном жанре.

Добавлено (10 февраля 2015, 13:27)
---------------------------------------------
https://www.google.com/search?....Q_AUoAQ

Добавлено (14 февраля 2015, 10:23)
---------------------------------------------
Ещё на одном компе с XP крашит.

И ещё, вот к ноуту с 7-кой прицепил моник по HDMI, в оконном режиме нормально, а в фуллскрине такая бадяга:

Добавлено (14 февраля 2015, 10:24)
---------------------------------------------
как-то оно тайлами глючит.

Добавлено (14 февраля 2015, 14:18)
---------------------------------------------
Ага. Дело даже не в подключении внешнего моника.
даже на дисплее самого ноута такой глюк при фуллскрине.
Причём глючит если в цикле дэстроить таргет-текстуру.
Методом втыка решил проблему. Заменил параметр SDL_TEXTUREACCESS_TARGET на SDL_TEXTUREACCESS_STATIC, и теперь в цикле не надо каждый раз создавать и удалять текстуру.

Но это что касается глюка в фуллскрине. На XP ещё не проверял.

AlkoshaДата: Воскресенье, 01 Марта 2015, 17:12 | Сообщение # 153 | Тема: Работы новичков
участник
Сейчас нет на сайте
Концепт-арт к "Металикс-зоне"



Сообщение отредактировал Alkosha - Воскресенье, 01 Марта 2015, 18:50
AlkoshaДата: Суббота, 14 Марта 2015, 12:39 | Сообщение # 154 | Тема: Работы в 3D
участник
Сейчас нет на сайте
Топология немного шляпа. Но это первый персонаж, которого замоделил (правда ещё не ригил и не текстурил)



Сообщение отредактировал Alkosha - Суббота, 14 Марта 2015, 12:40
AlkoshaДата: Четверг, 26 Марта 2015, 15:07 | Сообщение # 155 | Тема: Как настроить кодблокс на компиляцию SDL2 на убунте?
участник
Сейчас нет на сайте
Девайс - ноутбук..
Версия Ubuntu - 14.04 (32бита)
проц - AMD Athlon™ II P360 Dual-Core Processor × 2
Графический драйвер Gallium 0.4 on AMD CEDAR

IDE кодблокс 13.12

Как настроить проект на компиляцию SDL2 ?


Сообщение отредактировал Alkosha - Четверг, 26 Марта 2015, 15:08
AlkoshaДата: Суббота, 28 Марта 2015, 23:23 | Сообщение # 156 | Тема: Движок Irrlicht
участник
Сейчас нет на сайте
Реально ли в иррке сделать глобальное освещение так,чтоб вектор источника света и интенсивность были одинаковы на всех объектах на сцене?
AlkoshaДата: Воскресенье, 29 Марта 2015, 09:53 | Сообщение # 157 | Тема: Движок Irrlicht
участник
Сейчас нет на сайте
Цитата HPlusDiese ()
Можно


А каким образом? Стандартными средствами можно или только через шреддеры?
AlkoshaДата: Четверг, 02 Апреля 2015, 23:03 | Сообщение # 158 | Тема: Движок Irrlicht
участник
Сейчас нет на сайте
А в иррлихте есть среди стандартных примитивов что-то типа plane ?
Как есть, например, CubeSceneNode или SphereSceneNode. Вот нужно такое же, только ректангл.
Конечно можно воспользоваться кубом, и отскейлить его по одной оси в значение 0.
Но в таком случае видяха будет рисовать 16 трианглов, тогда как для обычной прямоугольной плоскости достаточно двух трианглов.

Добавлено (02 апреля 2015, 23:03)
---------------------------------------------
Как ноды скомпоновать в мэшбуфер ?
Чтоб комп обрабатывал массив нод не как массив, а как цельный меш?

AlkoshaДата: Суббота, 04 Апреля 2015, 10:47 | Сообщение # 159 | Тема: Как вычислить приращения по осям координат?
участник
Сейчас нет на сайте
Цитата Archido ()
У тебя координаты объектов во флоатах я надеюсь? В добавок стоит заменить неоднозначные auto на float в коде выше.


да, во флоатах. На счёт неявного типа переменной С++11 я в курсе.

Добавлено (24.10.2014, 15:33)
---------------------------------------------
Цитата OpenGOO ()
Проверил твой код, при скорость равно 20, объект движется туда куда его послали, а не наоборот.

Ладно. Буду глядеть дальше. Может где в скриптах с условиями допустил ошибку. Спасибо.

Добавлено (28 января 2015, 19:42)
---------------------------------------------
Вот интересно.
(x1, y1) - пункт отправления
(x2, y2) - пункт назначения
speed - скорость объекта

то есть speed - это шаг.

Но допустим, если speed >1 то конечная остановка будет с погрешностью.

Дело в том, что моя сегментная анимация (http://gcup.ru/forum/7-42764-1) сейчас по такому принципу работает.

то есть. каждый сегмент направляется по своим местам. Но если скорость большая (больше единицы), то получается дрожание:
https://vk.com/doc5385....2&wnd=1

Добавлено (04 апреля 2015, 10:47)
---------------------------------------------
ап

Сообщение отредактировал Alkosha - Суббота, 04 Апреля 2015, 10:47
AlkoshaДата: Вторник, 21 Апреля 2015, 23:40 | Сообщение # 160 | Тема: Динамическое изменение двумерного вектора
участник
Сейчас нет на сайте
Матрица двумерного массива объявлена так:
Код

  size_t row = mapsizeX;
     size_t col = mapsizeY;
    vector<vector<int> > matrixfloor(row);


при первой инициализации заполняю так (например рандомом)
Код
for(size_t i = 0; i < row; i++)
     {
         matrixfloor[i].resize(col);
         for(size_t j = 0; j < col; ++j)
             matrixfloor[i][j] = rand() % 4;
     }


Теперь чтобы изменить размер матрицы по высоте (клавишами 2 и 8)
Код
  if(keys[SDL_SCANCODE_KP_8])
         {

             mapsizeY--;

             for(size_t i = 0; i < mapsizeX; i++)
                 {
                     matrixfloor[i].resize(mapsizeY);

                 }

             SDL_Delay(100);
         }
     if(keys[SDL_SCANCODE_KP_2])
         {
             mapsizeY++;
             for(size_t i = 0; i < mapsizeX; i++)
                 {
                     matrixfloor[i].resize(mapsizeY);

                 }
             SDL_Delay(100);
         }


А вот по ширине когда пытаюсь изменить размер - fatal error
Код
if(keys[SDL_SCANCODE_KP_6]){mapsizeX++;

                     for(size_t i = 0; i < mapsizeX; i++)
     {
         matrixfloor[i].resize(mapsizeY);

     }
  SDL_Delay(100);}
   if(keys[SDL_SCANCODE_KP_4]){mapsizeX--;
                    for(size_t i = 0; i < mapsizeX; i++)
     {
         matrixfloor[i].resize(mapsizeY);

     }

    SDL_Delay(100);}
Поиск:

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