游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3035|回复: 2

初学者的问题

[复制链接]

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2003-8-25 22:44:00 | 显示全部楼层 |阅读模式
各位大侠你们好,麻烦看一看我这个函数 Bitmap_Surface

LPDIRECTDRAWSURFACE7 Bitmap_Surface(int nResID)
{
LPDIRECTDRAWSURFACE7 lpdd;
HDC hdc;
HBITMAP hbitmap;
BITMAP bmp;

hbitmap=(HBITMAP)LoadImage(g_hInstance,MAKEINTRESOURCE(nResID),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);
if (!hbitmap) return NULL;
GetObject(hbitmap,sizeof(BITMAP),&bmp);
DDSURFACEDESC2 ddsd;
InitDesc(ddsd);
ddsd.dwFlags =DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT ;
ddsd.ddsCaps.dwCaps =DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
ddsd.dwWidth =bmp.bmWidth ;
ddsd.dwHeight =bmp.bmHeight ;

if (lpDD->CreateSurface (&ddsd,&lpdd,NULL)!=DD_OK)  
{
DeleteObject(hbitmap);
return NULL;
}else{
lpdd->GetDC(&hdc);
HDC hSrcDC = CreateCompatibleDC(hdc);
SelectObject(hSrcDC,hbitmap);
BitBlt(hdc,0,0,bmp.bmWidth ,bmp.bmHeight ,hSrcDC,0, 0, SRCCOPY);
lpdd->ReleaseDC (hdc);
DeleteDC(hSrcDC);
}
DeleteObject(hbitmap);
return lpdd;
}




使用方法:
void TestFlip()
{
LPDIRECTDRAWSURFACE7 lpdd;
lpdd=Bitmap_Surface(BACKGROUND2);
lpDDSBack->BltFast (0,0,lpdd,NULL,DDBLTFAST_WAIT);
lpDDSPrimary->Flip (0,DDFLIP_WAIT);

}



这个函数运行正常,我想问的是:
这个函数的效率(速度,性能)是不是很低,请问大家是使用什么方法在游戏中帖图(读图)的?
请大家指教一下,谢谢!

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2003-8-26 10:30:00 | 显示全部楼层

Re:初学者的问题

顶一顶~~~~~

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2003-8-26 19:42:00 | 显示全部楼层

Re:初学者的问题

再顶~~
怎么没有人回答啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-24 23:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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