你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
用VC编程迷宫游戏(五)
 

return 0;

}

函数int ** InitWall(int ,int),用于初始化迷宫中的围墙,代码如下:

int ** CMaze::InitWall(int xSize, int ySize)

{

    int **Wall;

    int i,j;

    Wall=new int*[ySize+1];

    for(i=0;i<ySize+1;i++)

        Wall[i]=new int[xSize+1];       /*为二维数组Wall分配内存*/

    for(i=0;i<ySize+1;i++)

        for(j=0;j<xSize+1;j++)

            Wall[i][j]=0;               /*数组Wall初始值为0,表示尚无围墙*/

    return Wall;

}

函数BOOL InitMaze(),用于初始化迷宫,为迷宫中水平方向和垂直方向的围墙赋值。生成迷宫后,把表示迷宫的图形存储为emf类型的文件,emf(Enhanced Metafile)文件是微软公司开发的一种Windows 32位扩展图元文件格式,扩展名为.emf。本程序用到的操作emf文件的API函数有CreateEnhMetaFile()MoveToEx()LineTo()PlayEnhMetaFile(),关于这些函数的用法请参考《MSDN》,在此不再详述。实现的代码如下。

BOOL CMaze::InitMaze()

{

    current_x = xSize-2 ;

    current_y = ySize-1 ;       / *(current_x , current_y )是起点坐标*/

    HDC hdcEmf=CreateEnhMetaFile(NULL,"emf.emf",NULL,NULL);

/*得到emf文件的句柄,"emf.emf"保存迷宫的图形*/

    HWall=InitWall(ySize, xSize);   /*初始化水平方向的围墙*/

    VWall=InitWall(ySize, xSize);   /*初始化垂直方向的围墙*/

    int i,j;

    for (i=0;i<xSize;i++)

        HWall[i][0]=1;         

    for (i=0;i<ySize;i++)

        VWall[0][i]=1;          /*迷宫的边缘要画线,表示有围墙*/

    Rectangle(hdcEmf,0,0,STEP*xSize+1,STEP*ySize+1);   

    SelectObject(hdcEmf,GetStockObject(BLACK_PEN));

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089