GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (181 стр.)

Сообщения на форуме пользователя Andrey (181 стр.)

Создание класса в другом файле.2 мая 200623:25#7
oistalker
>а в bcc нет
ну нашел где искать ;) в топку такое уже давно...
функция glLoadMatrix2 мая 200622:54#2
integer
Вроде так:
0  4  8    12
1  5  9    13
2  6 10  14
3  7 11 15
формы в ms vc++2 мая 200622:34#4
Kavis
Вот хорошее решение перейти на продвинутые среды разработки а не всякие ламерские глюкалки :)
http://www.firststeps.ru/ там раздел  MFC очень хорошо расписано начинай с перевого щага и вперед!  и не заметишь разницы с тупым формошлепством.
и еще всем делфистам будешь советывать перейти на Visual C++. Я не понимаю чего все бояться MFC все всякий отстой типа Delphi да дебилдер...
Поздравляем Сайбера (CyberZX) с Днем Рождения!2 мая 200621:42#45
CyberZX
С Днем рождения :)
Использование физического движка2 мая 200614:04#18
Aut
>А на счет треугольника? А? В инете чё-то найти не могу !
http://algolist.manual.ru/
попробуй еще вот это:
#ifdef _WIN32
#ifdef _MSC_VER
#define INLINE __forceinline
#endif
#ifdef __BORLANDC__
#define	INLINE __inline
#endif
#else
#define INLINE always_inline
#endif

#ifndef INLINE
#define INLINE inline
#endif
	class Triangle3D {	//полигон в пространстве
	public:
		Vector3D a;
		Vector3D b;
		Vector3D c;
...
		//Проверка принадлежности точки полигону
		INLINE bool InsidePolygon(const Vector3D& Intersection)
		{
#define MATCH_FACTOR 0.99f//Учет неточности вычислений
			float Angle = 0.0;
			Vector3D A, B;

			//Просматриваем все вершины
			//for (int i = 0; i < 3; i++) {
			//Теперь получим вектор от точки пересечения до текущей
			//вершины: вычитаем вектор точки пересечения из вектора
			//текущей вершины
			A = a - Intersection;
			//Аналогично получим вектор от точки пересечения до следующей вершины
			B = b - Intersection;
			//Находим угол между векторами и прибавляем к текущему
			Angle += static_cast<float>(acos(dotProduct(A, B) /
				(A.length() * B.length())));
			//Теперь получим вектор от точки пересечения до текущей
			//вершины: вычитаем вектор точки пересечения из вектора
			//текущей вершины
			A = b - Intersection;
			//Аналогично получим вектор от точки пересечения до следующей вершины
			B = c - Intersection;
			//Находим угол между векторами и прибавляем к текущему
			Angle += static_cast<float>(acos(dotProduct(A, B) /
				(A.length() * B.length())));
			//Теперь получим вектор от точки пересечения до текущей
			//вершины: вычитаем вектор точки пересечения из вектора
			//текущей вершины
			A = c - Intersection;
			//Аналогично получим вектор от точки пересечения до следующей вершины
			B = a - Intersection;
			//Находим угол между векторами и прибавляем к текущему
			Angle += static_cast<float>(acos(dotProduct(A, B) /
				(A.length() * B.length())));
			//после прохода всех вершин Angle = 2*Pi если
			//точка внутри полигона
			if (Angle >= (MATCH_FACTOR * (2.0f * Pi)))
				return true;
			return false;
#undef MATCH_FACTOR
		}
....
}
Использование физического движка2 мая 200613:18#16
Aut
>А можно по подробнее про деревья?
www.google.ru -> Octree, Bsp, kd-Tree.
http://www.gamedev.ru/articles/?id=30128
http://www.gamedev.ru/articles/?id=30114
Создание первого DirectX приложения.2 мая 200612:46#19
slyfox
>Если слова подкрепить нечем, то не смущай новичка.
Таймер QueryPerformanceCounter  довольно точный и лучше сразу на нем сделать даже новичку т.к. там особой сложности нет.
кстати можно для примера еще и clock() протестировать вроде быстрей timeGetTime
new и std::bad_alloc1 мая 200622:14#7
Джо
большинство современных компиляторов кидают исключения.
для старых как раз можно применять то что написал:
...
if (!p)
    throw std::bad_alloc(); // если new не бросает исключение, бросаем его сами.
...
slyfox
>Однако, отключать исключения как-то не хорошо.
смотря с какой стороны посмотреть.
в коненом итоге для бsстродействия приложения вообще лучше отключать исключения. Перехватывыая только системные типа access violation и т.д. т.е. (фатальные ошибки)эти исключения никак не отключишь, это касается win32 платформы. Для unix систем нужно перехватывать сигналы возникающие при фатальных ситуациях т.к. насколько мне известно эти ос не кидают системных исключений.
new и std::bad_alloc1 мая 200618:57#2
Джо
Microsoft Visual C++ .Net 2002/2003/2005 кидают. Отключить исключения можно опцией Yes (/EHsc)/No (Enable C++ Exceptions);
gcc  кидает, как там отключать не знаю;
Borland C++ Builder 6.0 точно не знаю но как-то тестировал, как отключить не знаю но в настройках найти можно
конфликт <stdio.h> и <d3dx9.h>1 мая 200615:26#9
mbait
дак я про отладчик не DirectX говорю, а про обычный! строка с именем файла какая приходит к D3DXCreateTextureFromFile? может там мусор читаешь...
конфликт <stdio.h> и <d3dx9.h>1 мая 200614:09#7
mbait
>Я вот только сейчас подумал: а влияет-ли на что-нибудь то, что я открыл файл для
>двоичного ввода-вывода("wb")?
естественно влияет писать надо тогда через fwrite
>...а в D3DXCreateTextureFromFile() передаю имя текстуры.
и что в отладчике видим? может строка неправильно читается?
Хранение сцены в Direct3D1 мая 200613:51#11
Osiris
кстати стучись в ICQ много интересного расскажу ;)
конфликт <stdio.h> и <d3dx9.h>1 мая 200612:28#4
mbait
может файл не закрываешь?
вот тогда при попытке создать текстуру естественно может и вылезает ошибка.
конфликт <stdio.h> и <d3dx9.h>1 мая 200611:49#2
mbait
покажи код, странно как-то, а если std::ifstream/std::ofstream/std::fstream попробовать?
Создание первого DirectX приложения.30 апр. 200619:52#2
SAMMI
ну для начала разберись с видением проектов в Microsoft Visual C++ и обрати внимание на слова noobOOP1

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр