Введение в программирование трехмерных игр с DX9

       

Окно примера к данной главе



Рисунок 15.5. Окно примера к данной главе


На Рисунок  15.5 показано окно приложения, созданного для данной главы. Чайник перемещается по экрану, а вы должны попытаться щелкнуть по нему мышкой. Если вы попали в ограничивающую сферу чайника, на экран будет выведено сообщающее об этом диалоговое окно. Мы обрабатываем событие щелчка кнопки мыши проверяя сообщение WM_LBUTTONDOWN:

case WM_LBUTTONDOWN: // Вычисляем луч в пространстве вида на основании // координат указателя мыши в момент щелчка d3d::Ray ray = CalcPickingRay(LOWORD(lParam), HIWORD(lParam));

// Преобразуем луч в мировое пространство D3DXMATRIX view; Device->GetTransform(D3DTS_VIEW, &view);

D3DXMATRIX viewInverse; D3DXMatrixInverse(&viewInverse, 0, &view);

TransformRay(&ray, &viewInverse);

// Проверяем попадание if(RaySphereIntTest(&ray, &BSphere)) ::MessageBox(0, "Hit!", "HIT", 0);

break;



Содержание раздела