資源簡介
win32下的一個小鳥飛翔的例子 有源代碼 ,可以看看

代碼片段和文件信息
#include?
#include?“resource.h“
#pragma?comment(lib“MSIMG32.lib“)
#define?KUAN?212
#define?GAO?283
#define?YANSHIZITAI?5
#define?YANSHIBIANSUX?16
#define?YANSHIBIANSUY?16
#define?XIAONIAOSHUMU?30
#define?SUOFANG?40
HINSTANCE?hInst;
int?cxcy;
RECT?rt;
class?_XiaoNiao
{
static?HBITMAP?hBitMap;
static?HDC?hdcMem;
POINT?ptWeiZhi;//位置
int?iZiTai;//姿態
int?iYanShiZiTai;
int?iYanShiBianSuX;
int?iYanShiBianSuY;
int?iFangXiang;//方向
int?iSuDu_xiSuDu_y;//速度
int?iJiaSuDu_xiJiaSuDu_y;//加速度
public:
_XiaoNiao();
~_XiaoNiao()
{
};
static?void?ChuShiHua();
void?Fei();
void?Draw(HDC?hdc);
};
HBITMAP?_XiaoNiao::hBitMap;
HDC?_XiaoNiao::hdcMem;
_XiaoNiao::_XiaoNiao()
{
iZiTai=0;
iFangXiang=0;
ptWeiZhi.x=rand()%400+100;
ptWeiZhi.y=rand()%300+100;
iSuDu_x=rand()%6;
iSuDu_y=rand()%6;
iJiaSuDu_x=1;
iJiaSuDu_y=1;
}
void?_XiaoNiao::ChuShiHua()
{
hdcMem=CreateCompatibleDC(NULL);
hBitMap=LoadBitmap(hInstMAKEINTRESOURCE(IDB_BITMAP1));
Selectobject(hdcMemhBitMap);
SetStretchBltMode(hdcMemCOLORONCOLOR);
}
void?_XiaoNiao::Fei()
{
iYanShiBianSuX--;
iYanShiBianSuY--;
if(iYanShiBianSuX<=0)
{
iYanShiBianSuX=YANSHIBIANSUX;
iJiaSuDu_x=rand()%4-3;
iSuDu_x+=iJiaSuDu_x;
}
if(iYanShiBianSuY<=0)
{
iYanShiBianSuY=YANSHIBIANSUY;
iJiaSuDu_y=rand()%4-3;
iSuDu_y+=iJiaSuDu_y;
}
if(abs(iSuDu_x)>6)
{
iSuDu_x=6;
}
if(abs(iSuDu_y)>6)
{
iSuDu_y=6;
}
ptWeiZhi.x+=iSuDu_x;
ptWeiZhi.y+=iSuDu_y;
if((ptWeiZhi.x>rt.right-SUOFANG/2)||(ptWeiZhi.x {
iSuDu_x=-iSuDu_x;
ptWeiZhi.x+=iSuDu_x;
}
if((ptWeiZhi.y>rt.bottom-SUOFANG/2)||(ptWeiZhi.y {
iSuDu_y=-iSuDu_y;
ptWeiZhi.y+=iSuDu_y;
}
if(iSuDu_x>0)iFangXiang=0;
else?iFangXiang=1;
iYanShiZiTai--;
if(iYanShiZiTai<=0)
{
iYanShiZiTai=YANSHIZITAI;
iZiTai^=1;
}
}
void?_XiaoNiao::Draw(HDC?hdc)
{
// Rectangle(hdcptWeiZhi.x-SUOFANGptWeiZhi.y-SUOFANGptWeiZhi.x+SUOFANGptWeiZhi.y+SUOFANG);
TransparentBlt(hdcptWeiZhi.x-SUOFANG/2ptWeiZhi.y-SUOFANG/2SUOFANGSUOFANG
hdcMemiZiTai*KUANiFangXiang*GAOKUANGAO0xff);
}
_XiaoNiao?XiaoNiaos[XIAONIAOSHUMU];
BOOL?WINAPI?Pro1(HWND?hWndUINT?msgWPARAM?wParamLPARAM?lParam)
{
HDC?hdc;
static?HDC?hdcMem;
static?HBITMAP?hBitMap;
int?i;
switch(msg)
{
case?WM_INITDIALOG:
SetTimer(hWnd140NULL);
GetClientRect(hWnd&rt);
hdc=GetDC(hWnd);
hdcMem=CreateCompatibleDC(NULL);
hBitMap=CreateCompatibleBitmap(hdcrt.rightrt.bottom);
ReleaseDC(hWndhdc);
Selectobject(hdcMemhBitMap);
return?0;
case?WM_TIMER:
Selectobject(hdcMemGetStockobject(BLACK_BRUSH));
PatBlt(hdcMem00rt.rightrt.bottomPATCOPY);
// Rectangle(hdcMemSUOFANG/2SUOFANG/2rt.right-SUOFANG/2rt.bottom-SUOFANG/2);
for?(i=0;i {
XiaoNiaos[i].Fei();
????XiaoNiaos[i].Draw(hdcMem);
}
hdc=GetDC(hWnd);
BitBlt(hdc00rt.rightrt.bottomhdcMem
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????243326??2011-07-14?00:33??2.bmp
?????文件??????12918??2011-07-14?00:42??bird.ico
?????文件????????546??2011-07-14?00:42??resource.h
?????文件?????288380??2011-07-14?00:42??sc
?????文件???????2594??2011-07-14?00:42??sc
?????文件???????3443??2011-07-14?00:57??飛翔的小鳥.cpp
?????文件???????4399??2011-07-14?00:42??飛翔的小鳥.dsp
?????文件????????528??2011-07-13?22:40??飛翔的小鳥.dsw
?????文件??????50176??2011-07-14?00:58??飛翔的小鳥.ncb
?????文件??????48640??2011-07-14?00:58??飛翔的小鳥.opt
?????文件???????1160??2011-07-14?00:57??飛翔的小鳥.plg
-----------?---------??----------?-----??----
???????????????656110????????????????????11
評論
共有 條評論