D3DX9 Изменение масштаба спрайта в зависимости от положения - PullRequest
0 голосов
/ 29 февраля 2020

Я рисую Спрайт в Мире, но у меня возникла проблема, если я уйду, масштаб спрайта увеличится, а если войдет, масштаб уменьшится

Я хочу, чтобы он отображал тот же масштаб в любой позиции, или он увеличивается, если Я сближаюсь и уменьшаюсь, когда ухожу.

Изображение [вы можете увидеть его по-другому, глядя на деревянную тарелку)

Когда ухожу https://cdn.discordapp.com/attachments/425643121234280452/683307103716245546/Screenshot_18.png

При входе в https://cdn.discordapp.com/attachments/425643121234280452/683307095843668010/Screenshot_17.png

Код

            WorldToScreen(pDevice, &SpritePos, &SPos, &matMat, &viewmat);
            if (SPos.z > 1.0f) return;

            pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
            pDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
            pDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
            pDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
            pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
            pDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
            pDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);
            ARPGUIDATA.Texture.QuestSprite->Begin(NULL);
            D3DXMatrixTransformation2D(&ARPD3DDATA.SpriteTransMatrix, NULL, 0.0, &D3DXVECTOR2(1, 1), 0,0, &D3DXVECTOR2(SPos.x, SPos.y));

            ARPGUIDATA.Texture.QuestSprite->SetTransform(&ARPD3DDATA.SpriteTransMatrix);

            ARPGUIDATA.Texture.QuestSprite->Draw(ARPGUIDATA.Texture.QuestionMarkIcon, NULL, NULL, NULL, D3DCOLOR_ARGB(255, 255, 255, 255));
            ARPGUIDATA.Texture.QuestSprite->End();
...