|
|
int game_main()
{
lpback->GetSurfaceDesc(&ddsd);
lpback->Lock(NULL,&ddsd,DDLOCK_WAIT|DDLOCK_SURFACEMEMORYPTR, NULL);
RECT rect;
rect.left=0;rect.top=0,rect.right=256,rect.bottom=256;
lpback->BltFast(0,0,lpDDopl,&rect,DDBLTFAST_WAIT);
lpback->Unlock(NULL);
lpprimary->Flip(NULL,DDFLIP_WAIT);
Sleep(1000);
if(KEYDOWN(VK_ESCAPE))
SendMessage(main_window_handle,WM_CLOSE,0,0);
return(1);
}
int game_init()
{
if (FAILED(DirectDrawCreateEx(NULL, (void **)&lpd7, IID_IDirectDraw7, NULL)))
return(0);
lpd7->SetCooperativeLevel(main_window_handle,DDSCL_FULLSCREEN|DDSCL_EXCLUSIVE|DDSCL_ALLOWMODEX|DDSCL_ALLOWREBOOT);
lpd7->SetDisplayMode(width,hight,8,0,0);
DDSURFACEDESC2 ddsd;
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE | DDSCAPS_COMPLEX | DDSCAPS_FLIP;
ddsd.dwBackBufferCount = 1;
if(FAILED(lpd7->CreateSurface(&ddsd,&lpprimary,NULL)))
return 0;
ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;
if (FAILED(lpprimary->GetAttachedSurface(&ddsd.ddsCaps, &lpback)))
return(0);
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS |DDSD_HEIGHT|DDSD_WIDTH;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
ddsd.dwWidth=256;
ddsd.dwHeight=256;
if (FAILED(lpd7->CreateSurface(&ddsd, &lpDDopl, NULL)))
return(0);
HBITMAP bitmap; //声明HBITMAP对象
hdc=::CreateCompatibleDC(NULL);
bitmap=(HBITMAP): oadImage(NULL,"Grass.bmp",IMAGE_BITMAP,256,256,LR_LOADFROMFILE);
if(bitmap==NULL)
return(0);
::SelectObject(hdc,bitmap);
HRESULT result;
lpDDopl->GetSurfaceDesc(&ddsd);
result= lpDDopl->GetDC(&hdc1);
if(result!=DD_OK)
return 0;
::BitBlt(hdc1,0,0,ddsd.dwWidth,ddsd.dwHeight,hdc,0,0,SRCCOPY);
lpDDopl->ReleaseDC(hdc1);
::ReleaseDC(NULL,hdc);
return 1;
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
::RegisterClassEx(&wndclass);
HWND hwnd=::CreateWindowEx(L);
if(hwnd==NULL)
{
::MessageBox(NULL,"error","errror",MB_OK);
return -1;
}
main_window_handle=hwnd;
game_init();
while(true)
{ if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
}
game_main();
}
game_shutdown();
return msg.wParam;
}
请问下为什么图像显不出来啊,谢谢了。 |
|