资源简介

基于C++和OpenGL的迷宫游戏程序。 1、迷宫包含 15 * 15 个Cell。 2、读取给定的替身模型,加载到场景中。 3、键盘方向键控制替身转向与漫游。 4、有碰撞检测,替身不穿墙。 5、支持切换第一视角和第三视角进行观察。 6、迷宫场景中的墙、地面等应贴上纹理。 7. 含有二维辅助地图,替身在三维迷宫探索的同时,在小地图中显示已经探索的区域; 8. 在俯视状态下,可以通过鼠标点选替身需要到达的目的地,通过寻径算法,控制替身自动到达目的地; 9. 迷宫地图交互编辑功能,含有一个二维地图编辑器,根据用户的绘制,拉伸得到三维迷宫场景;

资源截图

代码片段和文件信息

/*/
//                 MD2 Viewer (c) 1999 by Mete Ciragan
//
// file:           md2.c
// last modified:  Apr 28 1999 Mete Ciragan
// copyright:      The programs and associated files contained in this
//                 distribution were developed by Mete Ciragan. The programs
//                 are not in the public domain but they are freely
//                 distributable without licensing fees. These programs are
//                 provided without guarantee or warrantee expressed or
//                 implied.
//
// version:        1.4
//
// email:          mete@swissquake.ch
// web:            http://www.swissquake.ch/chumbalum-soft/
/*/
#include “StdAfx.h“
#include 
#include 
#include  /* memset */
#include  /* sqrt */
//#include 
#include 
#include 
#include “md2.h“

#define NUMVERTEXNORMALS 162

float avertexnormals[NUMVERTEXNORMALS][3] = {
#include “anorms.h“
};

static int g_glcmds = 1; /* use glcommands */
static int g_interp = 1; /* interpolate frames */



/*
 * load model
 */
md2_model_t*
md2_readModel (const char *filename)
{
FILE *file;
md2_model_t *model;
byte buffer[MD2_MAX_frameSIZE];
int i;

model = (md2_model_t *) malloc (sizeof (md2_model_t));
if (!model)
return 0;

file = fopen (filename “rb“);
if (!file)
{
free (model);
return 0;
}

/* initialize model and read header */
memset (model 0 sizeof (md2_model_t));
fread (&model->header sizeof (md2_header_t) 1 file);
#if 0
printf (“magic:\t\t%d\n“ model->header.magic);
printf (“version:\t\t%d\n“ model->header.version);
printf (“skinWidth:\t\t%d\n“ model->header.skinWidth);
printf (“skinHeight:\t\t%d\n“ model->header.skinHeight);
printf (“frameSize:\t\t%d\n“ model->header.frameSize);
printf (“numSkins:\t\t%d\n“ model->header.numSkins);
printf (“numVertices:\t\t%d\n“ model->header.numVertices);
printf (“numTexCoords:\t\t%d\n“ model->header.numTexCoords);
printf (“numTriangles:\t\t%d\n“ model->header.numTriangles);
printf (“numGlCommands:\t\t%d\n“ model->header.numGlCommands);
printf (“numframes:\t\t%d\n“ model->header.numframes);
printf (“offsetSkins:\t\t%d\n“ model->header.offsetSkins);
printf (“offsetTexCoords:\t%d\n“ model->header.offsetTexCoords);
printf (“offsetTriangles:\t%d\n“ model->header.offsetTriangles);
printf (“offsetframes:\t\t%d\n“ model->header.offsetframes);
printf (“offsetGlCommands:\t%d\n“ model->header.offsetGlCommands);
printf (“offsetEnd:\t\t%d\n“ model->header.offsetEnd);
#endif
if (model->header.magic != (int) ((‘2‘ << 24) + (‘P‘ << 16) + (‘D‘ << 8) + ‘I‘))
{
fclose (file);
free (model);
return 0;
}

/* read skins */
fseek (file model->header.offsetSkins SEEK_SET);
if (model->header.numSkins > 0)
{
model->skins = (md2_skin_t *) malloc (sizeof (md2_skin_t) * model->header.numSkins);
if (!model->skins)
{
md2_freeM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     153600  2012-12-21 15:40  OpenGLexp3\Debug\OpenGLexp3.exe

     文件    1246180  2012-12-21 15:40  OpenGLexp3\Debug\OpenGLexp3.ilk

     文件    1297408  2012-12-21 15:40  OpenGLexp3\Debug\OpenGLexp3.pdb

     文件    2162688  2012-12-21 14:15  OpenGLexp3\ipch\openglexp3-11800d8d\openglexp3-7fd7b111.ipch

     文件       6051  2012-12-14 15:35  OpenGLexp3\OpenGLexp3\anorms.h

     文件       4910  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\cl.command.1.tlog

     文件      74218  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\CL.read.1.tlog

     文件       4926  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\CL.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link-cvtres.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link-cvtres.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10016-cvtres.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10016-cvtres.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10016.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10016.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10048-cvtres.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10048-cvtres.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10048.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10048.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10064-cvtres.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10064-cvtres.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10064.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10064.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10088-cvtres.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10088-cvtres.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10088.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10088.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10568-cvtres.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10568-cvtres.write.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10568.read.1.tlog

     文件          2  2012-12-21 15:40  OpenGLexp3\OpenGLexp3\Debug\link.10568.write.1.tlog

............此处省略209个文件信息

评论

共有 条评论