У меня есть пара вопросов, касающихся программирования в DirectX с использованием C ++.
Первая проблема, с которой я сталкиваюсь, заключается в том, что у меня есть текстура, которая не отображается на экране должным образом.Окно устанавливается на 800x600, когда оно создается, и текстура также на 800x600, но когда программа загружена, отображается только часть текстуры.Код показан ниже для загрузки и рисования текстур.
//This sets the image
helpFileTexture = new Texture(d3dDevice, L"../Resources/Help Guide.png");
//This is the draw function
helpFileTexture->Draw(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
//Which calls this
void Texture::Draw(long xPos, long yPos, long width, long height)
{
sprite->Begin(NULL);
RECT imageRectangle;
imageRectangle.left = xPos;
imageRectangle.top = yPos;
imageRectangle.right = imageRectangle.left + width;
imageRectangle.bottom = imageRectangle.top + height;
sprite->Draw(texture, &imageRectangle, &D3DXVECTOR3(1.0f, 1.0f, 0.0f), &D3DXVECTOR3((float)xPos, (float)yPos, 0.0f), D3DCOLOR_XRGB(255, 255, 255));
sprite->End();
}
Как я уже сказал, SCREEN_WIDTH
установлен на 800, а SCREEN_HEIGHT
установлен на 600 (что также соответствует размерамобраз).Он рисует сверху слева, как и должно быть, но покажет только часть изображения.Размер окна был установлен около 1100x1100, когда все изображение было видно.Я сделал что-то не так в кодировке, чтобы установить размер изображения.
Следующее, что у меня возникла проблема с сокрытием курсора.Я хочу скрыть курсор, когда я нажимаю левую кнопку мыши, а затем снова появляется, когда я отпускаю.Но курсор не исчезает.Код для этого приведен ниже.
if(input->mouseButtons.rgbButtons[0])
{
d3dDevice->ShowCursor(FALSE);
GetCursorPos(&input->mousePosition);
SetCursorPos(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2);
input->mousePosition.x -= SCREEN_WIDTH / 2;
mainCamera->UpdateYaw(input->mousePosition.x * rotationSpeed);
indexYaw += mainCamera->GetYaw();
D3DXMatrixRotationY(&viewMatrix, indexYaw);
d3dDevice->SetTransform(D3DTS_VIEW, &viewMatrix);
}
else
{
d3dDevice->ShowCursor(TRUE);
}
Как вы можете видеть, курсор должен исчезнуть, когда левая кнопка мыши нажата для управления камерой, но он все еще показывает.
Последнийпара вещей - это то, что является лучшим способом реализовать обнаружение столкновений между объектами и отслеживанием местности, или вы можете связать меня с тем, где будет хорошее место, чтобы найти их.
Я знаю, что это много, я спрашивал, нолюбая помощь будет отличной