0

我遇到了 DirectX 9 和 C++ 的另一个问题。我目前一直在使用 LPD3DXSPRITE 和 LPDIRECT3DTEXTURE9 开发 2D 游戏。我可以轻松加载纹理,但是在分发完成的游戏时,我还需要分发所有资源(可以编辑,删除或其他东西,这很不方便)。我知道可以将“资源文件”导入 Visual Studio,但是当我使用 D3DXCreateTextureFromFile() 引用它时,它不会加载它。我不知道我会怎么做。

如果这是可能的,请提前致谢。

4

1 回答 1

0

我不确定将游戏资产存储在 Windows 资源文件中是否是个好主意。但如果你真的想试试:

方法一。

用例:

// suppose we have resource `IDB_SPRITE1` in resource file linked in current executable
// and properly initialized g_pD3dDevice
LPDIRECT3DTEXTURE9 sprite1_texture = 0;
HRESULT hr = D3DXCreateTextureFromResource( g_pD3dDevice, GetModuleHandle(NULL), 
                              MAKEINTRESOURCE( SPRITE1 ), &sprite1_texture );
if(FAILED(hr))
{
    // there was error. Check `hr` for error description
}

// no errors: now you can use `sprite1_texture`

方法2。

于 2013-08-07T18:02:12.210 回答