游戏开发实验1

游戏开发实验1

ID:39892108

大小:515.50 KB

页数:9页

时间:2019-07-14

游戏开发实验1_第1页
游戏开发实验1_第2页
游戏开发实验1_第3页
游戏开发实验1_第4页
游戏开发实验1_第5页
资源描述:

《游戏开发实验1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验一:游戏地图的创建与显示一、实验目的学习VC++下游戏地图的创建与显示二、实验仪器电脑Virtural Studio 6.0 三、实验原理及过程菱形地图通常前一个坐标轴为X坐标,后一个坐标轴为Y坐标当X坐标值增大时,对应的菱形水平位置右移n*菱形小地图长度/2,竖直位置下移n*菱形小地图高度/2当Y坐标值增大时,对应的菱形水平位置左移n*菱形小地图长度/2,竖直位置下移n*菱形小地图高度/2     菱形地图算法实现intMapDraw(HDChdc){inti,j;intlim=MAXSCREENX/TILEWIDE;//所需绘制地图的范围f

2、or(i=-lim;i0)&&(sy+TILEHIGH>0)&&(playerx+i<100&&playerx+i>=0)&&(playery

3、+j<100&&playery+j>=0)){//边界判断TransparentBlt(hdcMem,sx,sy,TILEWIDE,TILEHIGH,hdcTiles[Data[playerx+i][playery+j]],0,0,TILEWIDE,TILEHIGH,RGB(0,255,0));//贴图}}}BitBlt(hdc,0,0,MAXSCREENX,MAXSCREENY,hdcMem,0,0,SRCCOPY);//画到窗口return0;}描述菱形地图显示的算法原理加载地图:for(inti=0;i<4;i++){_tcscpy(szNa

4、me,TEXT("MAP"));_itot(i,tempChar,10);_tcscat(szName,tempChar);hdcTiles[i]=CreateCompatibleDC(hdc);hBitmapTiles[i]=LoadBitmap(hInstance,szName);SelectObject(hdcTiles[i],hBitmapTiles[i]);}其中文件夹中有4张地图图片,运用for循环语句分别把四张地图MAP0,MAP1,MAP2,MAP3加载进来。在窗口铺满地图:for(intyi=0;yi

5、(intxi=0;xi

6、ndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)中的WM_CREATE读取地图文件,然后再执行InitMap,在地图的每一个格子随机添上贴图,在读取文件之后执行WM_PAINT,即可以在地图上画出附上图片,在输出图像时,使用MapDraw(hdc)中的TransparentBlt()函数将绿色作为透明关键色,即裁去4个角,从而实现菱形图形效果。 所调用的API的详细说明:1.全局变量:变量MAXSCREENX和MAXSCREENY为窗口的宽和高,TILEWIDE和TILEH

7、IGH为菱形地图的宽和高,创建变量hdcTiles[4]对应的内存设备中,存储着4个不同的矩形小地图。2.消息回调函数LRESULT CALLBACK WndProc (HWND hwnd, UINT message,WPARAM wParam,LPARAM lParam)中的WM_CREATE读取地图文件,该函数是先将文件中的图形文件读取到入口函数WINMAIN的参数hInstance句柄中,然后将消息反馈到消息函数WndProc中,执行case WM_CREATE语句,将hInstance中的信息传送到文件句柄hdcTiles中,这样就实现了文

8、件的读取。相关代码:caseWM_CREATE:hInstance=((LPCREATESTRUCT)lParam)->h

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。