资源简介
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
评论
共有 条评论