亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bitmaptool.cpp

?? 超級瑪麗源碼 z鍵:子彈 x鍵:跳 方向鍵移動 w鍵:默認窗口大小
?? CPP
字號:
#include "stdafx.h"
#include "bitmaptool.h"
#include "gamemap.h"

extern GAMEMAP gamemap;

extern FILEREPORT f1;

MYBITMAP::MYBITMAP()
{

}

MYBITMAP::~MYBITMAP()
{
	DeleteObject(hBm);
}

void MYBITMAP::Init(HINSTANCE hInstance,int iResource,int row,int col)
{
	BITMAP bm;
	inum=row;
	jnum=col;

	hBm=LoadBitmap(hInstance,MAKEINTRESOURCE(iResource));
	GetObject(hBm,sizeof(BITMAP),&bm);

	width=bm.bmWidth/inum;
	height=bm.bmHeight/jnum;
}

void MYBITMAP::SetDevice(HDC hdest,HDC hsrc,int wwin,int hwin)
{
	hdcdest=hdest;
	hdcsrc=hsrc;
	screenwidth=wwin;
	screenheight=hwin;
}

void MYBITMAP::Show(int x,int y)
{
	xpos=x;
	ypos=y;
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,xpos,ypos,width,height,hdcsrc,0,0,SRCCOPY);	
}

void MYBITMAP::ShowCenter(int y)
{
	xpos=(screenwidth-width)/2;
	ypos=y;

	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,xpos,ypos,width,height,hdcsrc,0,0,SRCCOPY);	
}

void MYBITMAP::ShowLoop(int left,int top,int right,int bottom,int iframe)
{
	int i,j;

	SelectObject(hdcsrc,hBm);
	for(j=top;j<bottom;j+=height)
	{
		for(i=left;i<right;i+=width)
		{
			BitBlt(hdcdest,i,j,width,height,hdcsrc,iframe*width,0,SRCCOPY);	
		}
	}
}

void MYBITMAP::ShowNoBack(int x,int y,int iFrame)
{
	xpos=x;
	ypos=y;
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,xpos,ypos,width,height/2,hdcsrc,iFrame*width,height/2,SRCAND);	
	BitBlt(hdcdest,xpos,ypos,width,height/2,hdcsrc,iFrame*width,0,SRCPAINT);		
}


void MYBITMAP::ShowNoBackLoop(int x,int y,int iFrame,int iNum)
{
	int i;
	xpos=x;
	ypos=y;
	SelectObject(hdcsrc,hBm);
	for(i=0;i<iNum;i++)
	{
		BitBlt(hdcdest,xpos+i*width,ypos,width,height/2,hdcsrc,iFrame*width,height/2,SRCAND);	
		BitBlt(hdcdest,xpos+i*width,ypos,width,height/2,hdcsrc,iFrame*width,0,SRCPAINT);		
	}
}

void MYBITMAP::ShowAni()
{
/*	if(!iStartAni)
		return;

	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,xpos,ypos,width,height/2,hdcsrc,framenow*width,height/2,SRCAND);	
	BitBlt(hdcdest,xpos,ypos,width,height/2,hdcsrc,framenow*width,0,SRCPAINT);		

	framenow++;
	//播放結束
	if(framenow>=inum)
		iStartAni=0;
		*/
}
void MYBITMAP::SetAni(int x,int y)
{
	xpos=x;
	ypos=y;
	/*
	framenow=0;
	iStartAni=1;
	*/
}


void MYBITMAP::SetPos(int istyle,int x,int y)
{
	switch(istyle)
	{
	case BM_CENTER:
		xpos=(screenwidth-width)/2;
		ypos=y;
		break;
	case BM_USER:
		xpos=x;
		ypos=y;
		break;
	}
}

void MYBITMAP::Draw(DWORD dwRop)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,xpos,ypos,width,height,hdcsrc,0,0,dwRop);	
}

void MYBITMAP::Stretch(int x,int y)
{
	SelectObject(hdcsrc,hBm);
	StretchBlt(hdcdest,xpos,ypos,width*x,height*y,
		hdcsrc,0,0,width,height,
		SRCCOPY);	
}

void MYBITMAP::Stretch(int x,int y,int id)
{
	SelectObject(hdcsrc,hBm);
	StretchBlt(hdcdest,xpos,ypos,width*x,height*y,
		hdcsrc,0,id*height,
		width,height,
		SRCCOPY);	
}


///////////////////////// bitmap object animation//////////////////
MYBKSKY::MYBKSKY()
{
	xseparate=0;
}

MYBKSKY::~MYBKSKY()
{}

void MYBKSKY::MoveTo(int x,int y)
{
	xpos=x;
	ypos=y;
}

void MYBKSKY::MoveRoll(int x)
{
	xseparate+=x;
	xseparate%=width;
	
	if(xseparate<0)
	{
		xseparate=width;
	}	
}

void MYBKSKY::DrawRoll()
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,xpos,ypos,
		width-xseparate,height,
		hdcsrc,xseparate,0,SRCCOPY);
	
	BitBlt(hdcdest,xpos+width-xseparate,ypos,
		xseparate,height,
		hdcsrc,0,0,SRCCOPY);	
}

void MYBKSKY::DrawRollStretch(int x,int y)
{
	SelectObject(hdcsrc,hBm);
	
	StretchBlt(hdcdest,xpos,ypos,
		(width-xseparate)*x,height*y,
		hdcsrc,xseparate,0,
		width-xseparate,height,
		SRCCOPY);
	
	StretchBlt(hdcdest,xpos+(width-xseparate)*x,ypos,
		xseparate*x,height*y,
		hdcsrc,0,0,
		xseparate,height,
		SRCCOPY);	
}

void MYBKSKY::DrawRollStretch(int x,int y, int id)
{
	SelectObject(hdcsrc,hBm);
	
	StretchBlt(hdcdest,xpos,ypos,
		(width-xseparate)*x,height*y,
		hdcsrc,xseparate,id*height,
		width-xseparate,height,
		SRCCOPY);
	
	StretchBlt(hdcdest,xpos+(width-xseparate)*x,ypos,
		xseparate*x,height*y,
		hdcsrc,0,id*height,
		xseparate,height,
		SRCCOPY);	
}

///////////////////////// bitmap role//////////////////
MYROLE::MYROLE()
{
}

MYROLE::~MYROLE()
{}

void MYROLE::MoveTo(int x,int y)
{
	xpos=x;
	ypos=y;
}

void MYROLE::MoveOffset(int x,int y)
{
	if(x==0 && y==0)
		return;

	if(!gamemap.RoleCanMove(x,y))
		return;

	xpos+=x;
	ypos+=y;
	
	if(xpos<minx)
		xpos=minx;

	if(xpos>maxx)
		xpos=maxx;	
}

void MYROLE::MoveStepTo(int x,int y)
{
	if(xpos<x)
		xpos+=ROLE_STEP;

	if(ypos<y)
		ypos+=8;

	if(ypos>y)
		ypos=y;
}

// 去背顯示
void MYROLE::Draw()
{
	if(iAniBegin)
	{
		PlayAni();	
	}
	else
	{
		SelectObject(hdcsrc,hBm);
		BitBlt(hdcdest,xpos,ypos,
			width,height/2,
			hdcsrc,iFrame*width,height/2,SRCAND);
		
		BitBlt(hdcdest,xpos,ypos,
			width,height/2,
			hdcsrc,iFrame*width,0,SRCPAINT);	
	}
}

void MYROLE::Draw(int x,int y,int frame)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,x,y,
		width,height/2,
		hdcsrc,frame*width,height/2,SRCAND);
	
	BitBlt(hdcdest,x,y,
		width,height/2,
		hdcsrc,frame*width,0,SRCPAINT);	
}

void MYROLE::InitRole(int xleft,int xright)
{
	iFrame=0;
	iState=0;

	maxx=xright;
	minx=xleft;

	jumpheight=0;

	movex=0;
	movey=0;

	jumpx=0;

	idirec=0;

	iAniBegin=0;
}

void MYROLE::SetLimit(int xleft,int xright)
{
	maxx=xright;
	minx=xleft;
}

void MYROLE::Move()
{
	if(0 == movey)
	{
		//水平移動
		MoveOffset(movex, 0);
	}
	else
	{
		//跳動		
		MoveOffset(jumpx, 0);
		MoveOffset(0, movey);
	}

	//幀控制
	if(movex<0 && iFrame<3)
	{
		iFrame=3;
	}
	
	if(movex>0 && iFrame>=3)
	{
		iFrame=0;
	}

	if(movex!=0)
	{
		if(0==idirec)
			iFrame=1-iFrame;
		else
			iFrame=7-iFrame;		
	}
	if(movey!=0)
	{
		iFrame=idirec*3;
	}

	
	if(movey<0)
	{
		//up
		jumpheight+=(-movey);
		
		//根據重力影響,加速度減慢
		if(movey<-1)
		{
			movey++;
		}

		//到達頂點后向下落
		if(jumpheight >= JUMP_HEIGHT * 32)
		{	
			jumpheight =  JUMP_HEIGHT * 32;
			movey=4;			
		}
	}
	else if(movey>0)
	{
		jumpheight -= movey;

		//根據重力影響,加速度增大
		movey++;			
	}
}

void MYROLE::Jump()
{
	//上升過程
	MoveOffset(0, -4);

}


void MYROLE::ChangeFrame()
{

}

void MYROLE::SetState(int i)
{	
	iState=i;
}

void MYROLE::SetAni(int istyle)
{
	iAniStyle=istyle;

	iparam1=0;
	iAniBegin=1;
}
//是否正在播放動畫
int  MYROLE::IsInAni()
{
	return iAniBegin;
}

void MYROLE::PlayAni()
{
	switch(iAniStyle)
	{
	case ROLE_ANI_DOWN:
		if(iparam1>31)
		{
			break;			
		}
		//人物下降動畫
		SelectObject(hdcsrc,hBm);
		BitBlt(hdcdest,
			xpos,ypos+iparam1,
			width,height/2-iparam1,
			hdcsrc,
			iFrame*width,height/2,SRCAND);
		
		BitBlt(hdcdest,
			xpos,ypos+iparam1,
			width,height/2-iparam1,
			hdcsrc,
			iFrame*width,0,SRCPAINT);	
		
		iparam1++;		
		break;
	
	case ROLE_ANI_UP:
		if(iparam1>31)
		{
			break;			
		}
		//人物上升動畫
		SelectObject(hdcsrc,hBm);
		BitBlt(hdcdest,
			xpos,ypos+32-iparam1,
			width,iparam1,
			hdcsrc,
			iFrame*width,height/2,SRCAND);
		
		BitBlt(hdcdest,
			xpos,ypos+32-iparam1,
			width,iparam1,
			hdcsrc,
			iFrame*width,0,SRCPAINT);	
		
		iparam1++;
		if(iparam1>31)
		{
			iAniBegin=0;	//動畫結束
		}
	default:
		break;
	}	
}
/////////////////////////////////// my animation /////////////////////

MYANIOBJ::MYANIOBJ()
{
	memset(wlist, 0, sizeof(wlist));
	memset(hlist, 0, sizeof(hlist));
	memset(ylist, 0, sizeof(ylist));	
	
	iframeplay=0;
}

MYANIOBJ::~MYANIOBJ()
{}

void MYANIOBJ::DrawItem(int x,int y,int id,int iframe)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id]+hlist[id],SRCAND);	

	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id],SRCPAINT);	
}

void MYANIOBJ::DrawItemNoMask(int x,int y,int id,int iframe)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id],SRCCOPY);	
}

void MYANIOBJ::DrawItemNoMaskWidth(int x,int y,int id,int w,int iframe)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,x,y,w,hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id],SRCCOPY);	
}

void MYANIOBJ::PlayItem(int x,int y,int id)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframeplay*wlist[id],ylist[id]+hlist[id],SRCAND);	

	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframeplay*wlist[id],ylist[id],SRCPAINT);	

	iframeplay=(iframeplay+1)%2;
}

void MYANIOBJ::InitAniList(int *pw,int *ph,int inum,int ismask)
{
	int i;
	memcpy(wlist, pw, inum*sizeof(int));
	memcpy(hlist, ph, inum*sizeof(int));

	ylist[0]=0;
	for(i=1;i<inum;i++)
	{
		//如果是mask,兩張圖片的間隔高度要乘以2
		ylist[i]=ylist[i-1]+hlist[i-1]*(ismask+1);
	}
	
}

void MYANIOBJ::InitAniList(int style,int a, int b)
{
	int i;

	switch(style)
	{
	case BM_SQUARE:
		// a : 數量, b: 邊長
		for(i=0;i<a;i++)
		{
			wlist[i]=b;
			hlist[i]=b;
			ylist[i]=i*b;
		}
		break;

	default:
		break;
	}	
}

/////////////////////////////////// my animation magic/////////////////////

MYANIMAGIC::MYANIMAGIC()
{
	memset(wlist, 0, sizeof(wlist));
	memset(hlist, 0, sizeof(hlist));
	memset(ylist, 0, sizeof(ylist));	
}

MYANIMAGIC::~MYANIMAGIC()
{}

void MYANIMAGIC::DrawItem(int x,int y,int id,int iframe)
{
	SelectObject(hdcsrc,hBm);
	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id]+hlist[id],SRCAND);	

	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id],SRCPAINT);
		/*
	//先在臨時DC上畫出效果總圖
	BitBlt(hdctemp,0,0,wlist[id],hlist[id],
		hdcsrc,
		0,ylist[id],SRCCOPY);	

	//用MASK圖作裁剪
	BitBlt(hdctemp,0,0,wlist[id],hlist[id],
		hdcsrc,
		iframe*wlist[id],ylist[id],SRCPAINT);

	//最后畫到屏幕上
	BitBlt(hdcdest,x,y,wlist[id],hlist[id],
		hdctemp,
		0,0,SRCPAINT);
		*/
}

//帶MASK
void MYANIMAGIC::InitAniList(int *pw,int *ph,int inum)
{
	int i;
	memcpy(wlist, pw, inum*sizeof(int));
	memcpy(hlist, ph, inum*sizeof(int));

	ylist[0]=0;
	for(i=1;i<inum;i++)
	{
		ylist[i]=ylist[i-1]+hlist[i-1]*2;
	}
	
}

void MYANIMAGIC::SetDevice(HDC hdest, HDC hsrc, HDC htemp)
{
	hdcdest=hdest;
	hdcsrc=hsrc;
	hdctemp=htemp;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区高清视频在线观看| 日韩av中文在线观看| 亚洲女人的天堂| 日韩制服丝袜av| 国产一区二区三区黄视频| 91免费视频网| 日韩三级精品电影久久久 | 日本一区免费视频| 亚洲精品v日韩精品| 国产又粗又猛又爽又黄91精品| 色一情一乱一乱一91av| 欧美大片免费久久精品三p| 亚洲激情在线激情| 成人免费观看男女羞羞视频| 777精品伊人久久久久大香线蕉| 国产精品久久久久四虎| 久久99这里只有精品| 在线视频欧美精品| 国产精品灌醉下药二区| 国产麻豆欧美日韩一区| 911国产精品| 亚洲一区二区黄色| 91在线视频播放| 国产精品美女视频| 懂色av一区二区夜夜嗨| 久久综合久久久久88| 日韩精品免费视频人成| 欧美视频在线不卡| 一区二区三区在线观看国产| 成人aa视频在线观看| 国产欧美一区二区三区鸳鸯浴| 久久99精品国产.久久久久| 9191久久久久久久久久久| 日韩av不卡在线观看| 欧美精品三级日韩久久| 视频一区视频二区在线观看| 欧美日韩和欧美的一区二区| 亚洲裸体在线观看| 在线视频你懂得一区| 亚洲综合视频网| 欧美最猛性xxxxx直播| 亚洲美女在线一区| 欧美日韩高清一区二区不卡| 亚洲国产精品一区二区久久恐怖片| 91色乱码一区二区三区| 一区二区视频在线看| 欧美日韩精品一区二区三区四区| 亚洲一区视频在线观看视频| 在线观看不卡视频| 日韩va亚洲va欧美va久久| 日韩精品一区二区三区中文不卡| 美女久久久精品| 久久日韩粉嫩一区二区三区| 丁香亚洲综合激情啪啪综合| 国产精品护士白丝一区av| 99久久精品免费看| 亚洲国产cao| 日韩精品中文字幕一区二区三区| 国产一区二区福利视频| 国产精品剧情在线亚洲| 欧美中文字幕一二三区视频| 天天射综合影视| 26uuuu精品一区二区| 成人黄色片在线观看| 亚洲欧美欧美一区二区三区| 欧美日韩国产首页| 国产精品99久| 亚洲一级电影视频| 精品久久久久久综合日本欧美| 国产精品一区二区在线观看不卡| 亚洲另类中文字| 日韩丝袜情趣美女图片| 成人激情免费视频| 亚洲成人精品在线观看| 国产午夜精品久久久久久久 | 欧美一区二区三区系列电影| 国产精品一区二区三区四区| 亚洲色图.com| 亚洲精品一区二区精华| 日本高清不卡一区| 精品亚洲免费视频| 亚洲综合无码一区二区| 国产欧美日韩中文久久| 欧美日韩www| 9i在线看片成人免费| 免费人成精品欧美精品| 亚洲欧洲www| 久久你懂得1024| 欧美肥妇free| 99在线精品一区二区三区| 九一久久久久久| 亚洲综合久久久| 成人免费视频免费观看| 欧美性色欧美a在线播放| 视频一区国产视频| 国产在线不卡一卡二卡三卡四卡| 欧美日韩国产综合一区二区| 成人黄色综合网站| 久久99国产乱子伦精品免费| 亚洲国产欧美另类丝袜| 亚洲欧美另类在线| 国产精品精品国产色婷婷| 欧美精品一区二区三区高清aⅴ | 91在线视频官网| 粉嫩绯色av一区二区在线观看| 麻豆精品国产91久久久久久| 亚洲国产日产av| 亚洲综合成人在线视频| 国产精品私房写真福利视频| 久久综合久久久久88| 精品成a人在线观看| 欧美丰满少妇xxxbbb| 欧美日韩一区二区三区四区五区| 91丨九色丨黑人外教| 国产99精品在线观看| 国产91在线观看丝袜| 国产98色在线|日韩| 国产精品白丝jk白祙喷水网站| 美腿丝袜亚洲一区| 久久97超碰国产精品超碰| 青青国产91久久久久久| 日韩成人伦理电影在线观看| 蜜桃视频在线一区| 国产乱子伦视频一区二区三区| 久久精品亚洲乱码伦伦中文| 在线免费观看成人短视频| 在线不卡一区二区| 欧美性猛片xxxx免费看久爱| 色综合久久久久久久| 一本一道综合狠狠老| 在线日韩国产精品| 欧美人与禽zozo性伦| 日韩一区二区电影在线| 欧美大片国产精品| 国产精品女主播av| 亚洲美女精品一区| 青娱乐精品在线视频| 久久99精品久久久久久国产越南| 国产酒店精品激情| av一区二区三区在线| 色狠狠av一区二区三区| 精品视频免费看| 欧美xxxxx裸体时装秀| 欧美激情一区不卡| 亚洲国产视频直播| 久久99精品一区二区三区 | 欧美精品在欧美一区二区少妇| 欧美老年两性高潮| 日韩欧美区一区二| 国产嫩草影院久久久久| 伊人婷婷欧美激情| 免费久久99精品国产| 精品夜夜嗨av一区二区三区| 99re亚洲国产精品| 91精品婷婷国产综合久久| 久久久一区二区三区捆绑**| 亚洲嫩草精品久久| 蜜臀久久99精品久久久久久9 | 日韩欧美国产综合在线一区二区三区| wwwwxxxxx欧美| 一区二区久久久| 国产一区二区免费看| 精品视频999| 国产精品久久久一本精品| 五月激情综合色| 成人视屏免费看| 91精品国产欧美一区二区18 | 日韩欧美自拍偷拍| 18成人在线观看| 国产综合色产在线精品| 欧美午夜精品久久久久久孕妇 | 国产高清精品在线| 精品视频色一区| 亚洲人亚洲人成电影网站色| 蜜桃av一区二区三区| 在线视频一区二区三区| 欧美激情综合五月色丁香小说| 日韩电影在线看| 欧洲另类一二三四区| 国产精品成人午夜| 国产精品自拍av| 欧美xxxx在线观看| 日本成人在线一区| 欧美三级资源在线| 亚洲日本在线看| 成人高清免费在线播放| 久久日韩精品一区二区五区| 日韩精品一级二级| 欧美性生活久久| 亚洲主播在线观看| 久久99国产精品久久| 亚洲资源在线观看| 久久综合色8888| 亚洲激情五月婷婷| 日本不卡视频在线| 欧美日韩二区三区| 亚洲国产日韩一区二区| 一本色道a无线码一区v| 日韩一区中文字幕| 成人影视亚洲图片在线|