幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3392|回复: 1

[游戏编程] ID3DXSprite的问题……

[复制链接]

24

主题

117

帖子

1274

积分

⑥精研

积分
1274
QQ
发表于 2010-4-2 20:27:25 | 显示全部楼层 |阅读模式
为啥在ID3DXSprite->Begin()的时候会有问题啊?

Game.exe 中的 0x004011c0 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突

这究竟是什么问题啊囧……
  1. void Render() {
  2.     if (g_pD3DDevice->Clear(NULL, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0, 0) == S_OK){
  3.         if (SUCCEEDED(g_pD3DDevice->BeginScene())) {
  4.             sprite->Begin(D3DXSPRITE_ALPHABLEND);
  5.             // TODO : Add scene rendering code here.
  6.             sprite->End();
  7.             g_pD3DDevice->EndScene();
  8.             g_pD3DDevice->Present(NULL, NULL, NULL, NULL);
  9.         }
  10.     }
  11. }
复制代码
  1. HRESULT InitializeGraphics(HWND hWnd) {
  2.     HRESULT hr;
  3.     if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
  4.         return E_FAIL;
  5.     D3DPRESENT_PARAMETERS d3dpp;
  6.     ZeroMemory(&d3dpp, sizeof(d3dpp));
  7.     d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  8.     if (windowed) {
  9.         d3dpp.Windowed = TRUE;
  10.     }
  11.     else {
  12.         D3DDISPLAYMODE d3ddm;
  13.         g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
  14.         d3dpp.BackBufferCount = 1;
  15.         d3dpp.BackBufferFormat = d3ddm.Format;
  16.         d3dpp.BackBufferWidth = screenwidth;
  17.         d3dpp.BackBufferHeight = screenheight;
  18.         d3dpp.Windowed = FALSE;
  19.     }
  20.     hr = g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pD3DDevice);
  21.     if (hr == S_OK) {
  22.         g_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
  23.         g_pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
  24.         g_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
  25.         g_pD3DDevice->SetRenderState(D3DRS_BLENDOPALPHA, D3DBLENDOP_ADD);
  26.         g_pD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
  27.         g_pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
  28.     }
  29.     return hr;
  30. }
复制代码
Tamashii是啥意思? 魂! ======================= 我真是败给C++的面向对象了啊……
回复

使用道具 举报

1

主题

5

帖子

167

积分

③业余

积分
167
QQ
发表于 2010-4-5 15:35:42 | 显示全部楼层
话说没有看到 sprite 的初始化 = =
  1. hr = D3DXCreateSprite(g_pD3DDevice,  &sprite);
复制代码
[7Y]七曜石动漫社:109184857
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 12:36 , Processed in 0.018729 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表