Showmap.cpp
资源名称:LwGame2.0.rar [点击查看]
上传用户:semy2100
上传日期:2013-01-22
资源大小:3633k
文件大小:3k
源码类别:
射击游戏
开发平台:
Visual C++
- /********************************************************************
- * 空运爆发 *
- * Version 2.0 *
- * 本游戏全部代码由: *
- * 冲天实验室 梁锋 编写 *
- * 邮箱:lenwine@126.com *
- * bbs: http://free2.e-168.cn/lenwind (正在开发中...) *
- **********************************************************************/
- #include "stdafx.h"
- #include "Showmap.h"
- //////////////////////////////////////////////////////////////////////
- // Construction/Destruction
- //////////////////////////////////////////////////////////////////////
- Showmap::Showmap(char *Img,int bi,BOOL HStyle=false,COLORREF HColor=RGB(255,0,255)):
- map(NULL),
- known(NULL),
- Bl(0),Bt(0),
- bHStyle(HStyle),
- cHColor(HColor)
- {
- InitImage(Img,bi);
- if(bHStyle)
- NewPaint();
- }
- Showmap::~Showmap()
- {
- DeleteObject(map);
- }
- void Showmap::InitImage(char *Img,int bi)
- {
- DeleteObject(map);//IMAGE_BITMAP
- map=(HBITMAP)LoadImage(NULL,Img,IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
- DIBSECTION dibse;
- GetObject(map,sizeof(dibse),&dibse);//生成一个dibse结构
- Bl=dibse.dsBmih.biWidth;//取得角色的宽
- Bt=dibse.dsBmih.biHeight;//取得角色的高
- }
- /*****************/
- // 图像 //
- /*****************/
- void Showmap::NewPaint()
- {
- // storebg=CreateBitmap(Bl2,Bt2,1,1,NULL);
- known=CreateBitmap(Bl,Bt,1,1,NULL);//新建位图
- /*HDC bgdc=CreateCompatibleDC(0);
- bgmap=(HBITMAP)LoadImage(NULL,"bwGame.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
- SelectObject(bgdc,bgmap);*/
- HDC mapdc=CreateCompatibleDC(0);//建立与设备上下文相兼容的mapdc
- HDC knowndc=CreateCompatibleDC(0);//建立与设备上下文相兼容的knowndc
- SelectObject(mapdc,map);//将图像送到空场景中
- SelectObject(knowndc,known);//将图像送到空场景中
- SetBkColor(mapdc,cHColor);//背景
- BitBlt(knowndc,0,0,Bl,Bt,mapdc,0,0,SRCCOPY);//将原图像场景送到knowndc场景中
- SetBkColor(mapdc,RGB(0,0,0));//所有角色背景与黑色相兼容
- SetTextColor(mapdc,RGB(255,255,255));
- BitBlt(mapdc,0,0,Bl,Bt,knowndc,0,0,SRCAND);//再作个与操作将目的mapdc与knowndc组合
- DeleteDC(mapdc);//清理现场
- DeleteDC(knowndc);//清理现场
- }
- //============================================================
- //将加入的图像送到场景中
- //DImage()
- //============================================================
- void Showmap::DImage(HDC didc,int Dx=0,int Dy=0,int Dl=0,int Dt=0,int bx=0,int by=0)
- {
- if(!Dl)Dl=Bl;
- if(!Dt)Dt=Bt;
- HDC mapdc=CreateCompatibleDC(didc);
- SelectObject(mapdc,map);//将画面放进场景中
- if(bHStyle)//是否true,Yes那就
- {
- HDC knowndc=CreateCompatibleDC(didc);
- SelectObject(knowndc,known);
- /*bx by 移动是的X,Y坐标*/
- BitBlt(didc,Dx,Dy,Dl,Dt,knowndc,bx,by,SRCAND);//去组合。
- BitBlt(didc,Dx,Dy,Dl,Dt,mapdc,bx,by,SRCPAINT);//做OR操作,组合
- DeleteDC(knowndc);
- }
- else
- BitBlt(didc,Dx,Dy,Dl,Dt,mapdc,bx,by,SRCCOPY);
- DeleteDC(mapdc);//清屏
- }