Любая идея, почему это происходит?
В моем Main.cpp я просто вызвал функцию следующим образом:
Character *Police;
Police = new Character;
Police->Initialize("Police.png", 50.0f, 50.0f, 64.0f, 63.5f);
MSG Msg;
while (GetMessage(&Msg, NULL, 0, 0))
{
while (PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE))
{
if (Msg.message == WM_QUIT) break;
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
Inputs->GetInput();
Graphic->ClearBegin();
Police->Transform();
Police->Begin();
Police->Draw();
Police->End();
Graphic->EndPresent();
}
Я не понимаю, что это за исключением.
Указатель Sprite не инициализирован. Вы видите это в нижней части экрана (Sprite - NULL).
Попытка вызвать функцию для объекта null objject приводит к нарушению доступа.
Попробуйте инициализировать свой спрайт с помощью D3DXCreateSprite()
перед его использованием.
void Character::Initialize(string image, float PosX, float PosY, float CenterX, float CenterY) { D3DXCreateTextureFromFile(PULL->getD3ddev(), image.c_str(), &Texture); D3DXCreateSprite(PULL->getD3ddev(), &Sprite); SpritePos = D3DXVECTOR2(PosX, PosY); SpriteCenter = D3DXVECTOR2(CenterX, CenterY); }
ли это должно быть?
D3DXCreateSprite(PULL->getD3ddev(), &Sprite)
возвращает S_OK
?
LPD3DXSPRITE Sprite;
затем в конструкторе cpp я установил его в NULLSprite = NULL;