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

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

?? bitmaptool.cpp

?? 超級瑪麗的源代碼 包括普通的和增強版的源代碼
?? 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国产精品久久久久| 91蝌蚪porny| 久久伊人中文字幕| 亚洲午夜在线电影| 国产91精品精华液一区二区三区 | 久久日韩精品一区二区五区| 一区二区三区在线免费| 国产精品亚洲一区二区三区在线| 欧美三级中文字| 亚洲人成在线播放网站岛国| 国产成人亚洲综合a∨婷婷| 91精品国产综合久久精品图片| 亚洲另类春色国产| 成人18精品视频| 国产女人水真多18毛片18精品视频| 日韩制服丝袜av| 欧美日韩三级一区| 一区二区三区不卡在线观看| 99久久精品国产一区二区三区| 精品剧情v国产在线观看在线| 亚洲18女电影在线观看| 在线视频国内一区二区| 亚洲欧美日韩国产中文在线| 成人性生交大片免费看中文| 亚洲国产日韩综合久久精品| 大陆成人av片| 国产精品国产三级国产普通话蜜臀 | 自拍偷拍国产精品| 99久久伊人网影院| 亚洲国产激情av| 成人精品小蝌蚪| 国产精品乱人伦| 91免费版pro下载短视频| 中文字幕亚洲一区二区av在线| 丁香啪啪综合成人亚洲小说| 国产精品国产三级国产专播品爱网 | 亚洲综合久久av| 欧美艳星brazzers| 图片区小说区国产精品视频| 日产国产欧美视频一区精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本aⅴ亚洲精品中文乱码| 欧美精品一级二级三级| 蜜臀精品久久久久久蜜臀| 日韩视频一区在线观看| 国产精品一线二线三线| 国产精品久久久久影院色老大| 99久久精品免费| 午夜伊人狠狠久久| 欧美xfplay| 欧美日韩aaaaaa| 麻豆成人久久精品二区三区红 | 日韩视频一区二区三区| 国产综合色视频| 亚洲欧洲av在线| 欧美日本在线观看| 韩国理伦片一区二区三区在线播放 | av成人免费在线观看| 亚洲精品国产第一综合99久久| 欧美视频在线播放| 国产呦萝稀缺另类资源| 成人免费小视频| 欧美一区二区日韩| 国产aⅴ精品一区二区三区色成熟| 亚洲美女免费在线| 精品日韩欧美一区二区| 91美女片黄在线观看91美女| 蜜臀av性久久久久av蜜臀妖精| 欧美激情中文字幕一区二区| 欧美日韩国产123区| 国产传媒一区在线| 视频一区免费在线观看| 国产精品全国免费观看高清 | 日韩免费电影一区| 91美女在线观看| 国产乱一区二区| 香蕉成人伊视频在线观看| 中文字幕久久午夜不卡| 日韩精品综合一本久道在线视频| 91片黄在线观看| 国产福利视频一区二区三区| 三级精品在线观看| 亚洲欧美日韩在线| 国产三级精品三级在线专区| 91精品一区二区三区久久久久久| 高清不卡一二三区| 不卡的看片网站| 国产乱淫av一区二区三区 | 欧美巨大另类极品videosbest| 国产suv精品一区二区三区| 奇米影视一区二区三区小说| 亚洲精品国产高清久久伦理二区| 国产日产欧美一区二区三区| 91 com成人网| 欧美日韩精品一区二区三区四区| 播五月开心婷婷综合| 国产伦精品一区二区三区视频青涩| 亚洲大片免费看| 亚洲一区在线观看免费| 亚洲女人的天堂| 日韩久久一区二区| 中文字幕日韩一区| 国产精品久久久久久久裸模| 久久免费电影网| 久久精品人人做| 久久久亚洲精华液精华液精华液| 欧美大片一区二区| 日韩一级片在线播放| 日韩三级av在线播放| 日韩欧美一区二区免费| 精品三级在线看| 精品噜噜噜噜久久久久久久久试看| 日韩一区二区在线免费观看| 欧美美女网站色| 欧美一区日韩一区| 日韩久久久久久| 久久伊人中文字幕| 中文字幕av一区 二区| 国产精品系列在线| 国产精品理论片| 亚洲欧美日韩中文播放 | 亚洲成国产人片在线观看| 亚洲最快最全在线视频| 一区二区三区国产豹纹内裤在线| 亚洲免费观看视频| 一区二区不卡在线播放| 亚洲午夜激情网站| 久久精品99久久久| 国产一区二区三区免费播放| 国产成人精品一区二| 成人av在线电影| 日本黄色一区二区| 制服丝袜中文字幕亚洲| 日韩欧美不卡一区| 国产精品国产三级国产普通话三级 | 五月天视频一区| 极品美女销魂一区二区三区免费| 国产一区二区伦理片| av午夜一区麻豆| 欧美日韩小视频| 2023国产精品| 日韩一区中文字幕| 亚洲va欧美va人人爽| 国产一区三区三区| 91亚洲精品久久久蜜桃| 欧美精品九九99久久| 2021国产精品久久精品| 有码一区二区三区| 日本aⅴ精品一区二区三区 | 久久99精品国产| k8久久久一区二区三区| 欧美日韩国产美女| 国产精品丝袜一区| 日韩在线卡一卡二| 成人午夜视频在线| 欧美一区二区视频在线观看| 婷婷综合五月天| 国产精品99久久久久| 在线观看免费亚洲| 久久综合色鬼综合色| 亚洲一区二区三区四区在线免费观看 | 久久久久青草大香线综合精品| 亚洲美女偷拍久久| 国产麻豆视频一区二区| 欧美日韩另类一区| 中文字幕在线不卡一区| 日本欧美大码aⅴ在线播放| 91在线国内视频| 日韩欧美不卡在线观看视频| 亚洲综合一区二区精品导航| 国产98色在线|日韩| 欧美一区二区三区四区五区| 一区二区视频免费在线观看| 国产毛片一区二区| 日韩片之四级片| 性做久久久久久免费观看| 成人午夜av影视| 久久精品亚洲麻豆av一区二区| 日本系列欧美系列| 欧美在线视频你懂得| 自拍偷拍欧美激情| 国产麻豆精品在线| 精品免费一区二区三区| 亚瑟在线精品视频| 欧美丝袜第三区| 亚洲啪啪综合av一区二区三区| 国产成人av影院| 久久精品人人爽人人爽| 精品在线观看免费| 日韩精品中文字幕在线不卡尤物| 日精品一区二区| 欧美日韩国产中文| 亚洲成人一二三| 69堂亚洲精品首页| 视频一区在线视频| 日韩一区二区视频|