超级玛丽增强版源代码Word文档下载推荐.docx

上传人:b****5 文档编号:20813789 上传时间:2023-01-25 格式:DOCX 页数:92 大小:36.63KB
下载 相关 举报
超级玛丽增强版源代码Word文档下载推荐.docx_第1页
第1页 / 共92页
超级玛丽增强版源代码Word文档下载推荐.docx_第2页
第2页 / 共92页
超级玛丽增强版源代码Word文档下载推荐.docx_第3页
第3页 / 共92页
超级玛丽增强版源代码Word文档下载推荐.docx_第4页
第4页 / 共92页
超级玛丽增强版源代码Word文档下载推荐.docx_第5页
第5页 / 共92页
点击查看更多>>
下载资源
资源描述

超级玛丽增强版源代码Word文档下载推荐.docx

《超级玛丽增强版源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《超级玛丽增强版源代码Word文档下载推荐.docx(92页珍藏版)》请在冰豆网上搜索。

超级玛丽增强版源代码Word文档下载推荐.docx

intjnum;

intwidth;

intheight;

intscreenwidth;

intscreenheight;

HDChdcdest;

HDChdcsrc;

//当前位置

intxpos;

intypos;

intiStartAni;

};

classMYBKSKY:

publicMYBITMAP

MYBKSKY();

~MYBKSKY();

//show

voidDrawRoll();

//循环补空

voidDrawRollStretch(intx,inty);

voidDrawRollStretch(intx,inty,intid);

voidMoveTo(intx,inty);

voidMoveRoll(intx);

//data

intxseparate;

#defineBM_SQUARE1

classMYANIOBJ:

MYANIOBJ();

~MYANIOBJ();

//initlist

voidInitAniList(int*pw,int*ph,intinum,intismask);

voidInitAniList(intstyle,inta,intb);

voidDrawItem(intx,inty,intid,intiframe);

voidDrawItemNoMask(intx,inty,intid,intiframe);

//指定宽度

voidDrawItemNoMaskWidth(intx,inty,intid,intw,intiframe);

//自动播放

voidPlayItem(intx,inty,intid);

intwlist[20];

inthlist[20];

intylist[20];

intiframeplay;

classMYANIMAGIC:

MYANIMAGIC();

~MYANIMAGIC();

voidInitAniList(int*pw,int*ph,intinum);

voidSetDevice(HDChdest,HDChsrc,HDChtemp);

HDChdctemp;

classMYROLE:

MYROLE();

~MYROLE();

//init

voidInitRole(intxleft,intxright);

voidSetLimit(intxleft,intxright);

voidDraw();

voidDraw(intx,inty,intiframe);

voidChangeFrame();

voidSetState(inti);

voidMove();

voidJump();

//ANI

voidMoveOffset(intx,inty);

voidMoveStepTo(intx,inty);

//向目的地移动单位距离

voidPlayAni();

//播放一段动画

voidSetAni(intistyle);

intIsInAni();

//是否正在播放动画

intiState;

intiFrame;

intminx;

intmaxx;

//move

intmovex;

intmovey;

//jump

intjumpheight;

intjumpx;

//方向

intidirec;

//动画

intiAniBegin;

intiparam1;

intiAniStyle;

#endif

//bitmaptool.cpp

//Finishing

stdafx.h"

bitmaptool.h"

gamemap.h"

externGAMEMAPgamemap;

externFILEREPORTf1;

MYBITMAP:

:

MYBITMAP()

{}

~MYBITMAP()

DeleteObject(hBm);

}

voidMYBITMAP:

Init(HINSTANCEhInstance,intiResource,introw,intcol)

BITMAPbm;

inum=row;

jnum=col;

hBm=LoadBitmap(hInstance,MAKEINTRESOURCE(iResource));

GetObject(hBm,sizeof(BITMAP),&

bm);

width=bm.bmWidth/inum;

height=bm.bmHeight/jnum;

SetDevice(HDChdest,HDChsrc,intwwin,inthwin)

hdcdest=hdest;

hdcsrc=hsrc;

screenwidth=wwin;

screenheight=hwin;

Show(intx,inty)

xpos=x;

ypos=y;

SelectObject(hdcsrc,hBm);

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

ShowCenter(inty)

xpos=(screenwidth-width)/2;

ShowLoop(intleft,inttop,intright,intbottom,intiframe)

inti,j;

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);

}

}

ShowNoBack(intx,inty,intiFrame)

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);

ShowNoBackLoop(intx,inty,intiFrame,intiNum)

inti;

for(i=0;

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);

ShowAni()

/*if(!

iStartAni)

return;

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;

*/

SetAni(intx,inty)

/*

framenow=0;

iStartAni=1;

*/

SetPos(intistyle,intx,inty)

switch(istyle)

caseBM_CENTER:

xpos=(screenwidth-width)/2;

ypos=y;

break;

caseBM_USER:

xpos=x;

Draw(DWORDdwRop)

BitBlt(hdcdest,xpos,ypos,width,height,hdcsrc,0,0,dwRop);

Stretch(intx,inty)

StretchBlt(hdcdest,xpos,ypos,width*x,height*y,

hdcsrc,0,0,width,height,

SRCCOPY);

Stretch(intx,inty,intid)

hdcsrc,0,id*height,

width,height,

/////////////////////////bitmapobjectanimation//////////////////

MYBKSKY:

MYBKSKY()

xseparate=0;

~MYBKSKY()

voidMYBKSKY:

MoveTo(intx,inty)

MoveRoll(intx)

xseparate+=x;

xseparate%=width;

if(xseparate<

0)

xseparate=width;

}

DrawRoll()

BitBlt(hdcdest,xpos,ypos,

width-xseparate,height,

hdcsrc,xseparate,0,SRCCOPY);

BitBlt(hdcdest,xpos+width-xseparate,ypos,

xseparate,height,

hdcsrc,0,0,SRCCOPY);

DrawRollStretch(intx,inty)

StretchBlt(hdcdest,xpos,ypos,

(width-xseparate)*x,height*y,

hdcsrc,xseparate,0,

StretchBlt(hdcdest,xpos+(width-xseparate)*x,ypos,

xseparate*x,height*y,

hdcsrc,0,0,

DrawRollStretch(intx,inty,intid)

hdcsrc,xseparate,id*height,

/////////////////////////bitmaprole//////////////////

MYROLE:

MYROLE()

~MYROLE()

voidMYROLE:

MoveOffset(intx,inty)

if(x==0&

&

y==0)

if(!

gamemap.RoleCanMove(x,y))

xpos+=x;

ypos+=y;

if(xpos<

minx)

xpos=minx;

if(xpos>

maxx)

xpos=maxx;

MoveStepTo(intx,inty)

x)

xpos+=ROLE_STEP;

if(ypos<

y)

ypos+=8;

if(ypos>

//去背显示

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,

hdcsrc,iFrame*width,0,SRCPAINT);

Draw(intx,inty,intframe)

BitBlt(hdcdest,x,y,

width,height/2,

hdcsrc,frame*width,height/2,SRCAND);

hdcsrc,frame*width,0,SRCPAINT);

InitRole(intxleft,intxright)

iFrame=0;

iState=0;

maxx=xright;

minx=xleft;

jumpheight=0;

movex=0;

movey=0;

jumpx=0;

idirec=0;

iAniBegin=0;

SetLimit(intxleft,intxright)

Move()

if(0==movey)

//水平移动

MoveOffset(movex,0);

//跳动

MoveOffset(jumpx,0);

MoveOffset(0,movey);

//帧控制

if(movex<

0&

iFrame<

3)

iFrame=3;

if(movex>

iFrame>

=3)

iFrame=0;

if(movex!

=0)

if(0==idirec)

iFrame=1-iFrame;

else

iFrame=7-iFrame;

if(movey!

iFrame=idirec*3;

if(movey<

//up

jumpheight+=(-movey);

//根据重力影响,加速度减慢

if(movey<

-1)

movey++;

//到达顶点后向下落

if(jumpheight>

=JUMP_HEIGHT*32)

{

jumpheight=JUMP_HEIGHT*32;

movey=4;

elseif(movey>

jumpheight-=movey;

//根据重力影响,加速度增大

movey++;

Jump()

//上升过程

MoveOffset(0,-4);

ChangeFrame()

SetState(inti)

{

iState=i;

SetAni(intistyle)

{iAniStyle=istyle;

iparam1=0;

iAniBegin=1;

intMYROLE:

IsInAni()

{returniAniBegin;

PlayAni()

switch(iAniStyle)

caseROLE_ANI_DOWN:

if(iparam1>

31)

break;

//人物下降动画

BitBlt(hdcdest,

xpos,ypos+iparam1,

width,height/2-iparam1,

hdcsrc,

iFrame*width,height/2,SRCAND);

BitBlt(hdcdest,

iFrame*width,0,SRCPAINT);

iparam1++;

caseROLE_ANI_UP:

//人物上升动画

xpos,ypos+32-iparam1,

width,iparam1,

iFr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1