Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2024, 23:37   #61
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,359
По умолчанию

Чтобы убрать все ошибки и предупреждения, нужно убрать в текстурных заголовках PROGMEM и заменить тип со "static const char" на "static const unsigned char".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 20.05.2024, 20:32   #62
Timurkh77
Форумчанин
 
Регистрация: 16.02.2013
Сообщений: 169
По умолчанию

Добавил нанесение текстур на нижнюю и верхнюю плоскость.Почему-то текстуры не наносятся и рисуется пустой верх и низ.
Код:
if (frontBack == 1)
		{
			int x0 = SW / 2;
			int y0 = SH / 2;
			float fov = 200;
			int x2 = x - x0;
			int w0;

			float tile = S[s].ss * 7;

			if (S[s].surface == 1) { y2 = S[s].surf[x]; w0 = S[s].z1; }
			if (S[s].surface == 2) { y1 = S[s].surf[x]; w0 = S[s].z2; }

			float lookUpDown = -P.l * 6.2; if (lookUpDown > SH) { lookUpDown = SH; }
			float moveUpDown = (float)(P.z - w0) / (float)y0; if (moveUpDown == 0) { moveUpDown = 0.001; }

			int ys = y1 - y0, ye = y2 - y0;


			for (y = ys; y < ye; y++)
			{
				float z = y * lookUpDown; if (z == 0) { z = 0.0001; }
				float fx = x2 / z * moveUpDown * tile;
				float fy = fov / z * moveUpDown * tile;
				float rx = fx * M.sin[P.a] - fy * M.cos[P.a] + (P.y /60.0 * tile);
				float ry = fx * M.cos[P.a] + fy * M.sin[P.a] - (P.x / 60.0 * tile);

				if (rx < 0) { rx = -rx + 1; }
				if (ry < 0) { ry = -ry + 1; }

				int st = S[s].st;

				int pixel = (int)(Textures[st].h - ((int)ry % Textures[st].h) - 1) * 3 * Textures[st].w + ((int)rx % Textures[st].w) * 3;
				int r = Textures[st].name[pixel + 0];
				int g = Textures[st].name[pixel + 1];
				int b = Textures[st].name[pixel + 2];
				drawPixel(x2+x0,y+y0,r,g,b);
				
			}
         
		}
Не могу понять в чем дело?
Вложения
Тип файла: rar doom4.rar (275.0 Кб, 0 просмотров)
Timurkh77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в Delphi средствами OpenGL?? Нужна объяснить функции artiom4356 Общие вопросы Delphi 2 01.08.2014 10:23
Как и где узнать все функции и процедуры OpenGL(желательно на Delphi) artiom4356 Общие вопросы Delphi 4 01.08.2014 10:10
Qt+OpenGL. Qt "не видит" функции OpenGL EnterFix Qt и кроссплатформенное программирование С/С++ 4 29.01.2013 18:59
Использование функции чужого приложения/OpenGL coNsept Общие вопросы C/C++ 7 31.12.2010 16:15