资源简介
基于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\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
文件 2 2012-12-21 15:40 OpenGLexp3\OpenGLexp3\Debug\li
............此处省略209个文件信息
相关资源
- FFmpeg x86 x64库
- VC++24点游戏完整程序源码
- VC++外挂框架.rar
- VC++技术内幕第五版中文pdf
- C和C++程序员面试秘笈-董山海_高清版
- 线性代数C++模板库 Eigen 3.1.1 的CHM文档
- Effective C++中文版(第三版)
- VisualC++网络高级编程.(人民邮电.陈坚
- C++黑客编程揭秘与防范.pdf
- COM本质论.pdf )
- 基于VC++利用MFC做的图书管理系统
- MFC智能停车场管理系统
- c++版学生成绩管理系统实验报告及源
- c++游戏程序(包含源代码,有扫雷,
- VC++阳历(公历)到阴历(农历)转换
- NOIP2006-2017普及组初赛c++版试题+答案
- c++编写病毒方法+100个病毒源码
- opengl的立方体消隐算法
- 新概念C++程序设计大学教程第2版张基
- C++实现的职工管理系统
- Visual C++数字图像实用工程案例精选源
- 常用数值计算方法c++源代码实现
- 粒子群算法及其代码实现
- 椭圆曲线ECC加密解密算法的c语言实现
- 格雷码图片生成与保存C++实现代码
- hill密码的加密、解密以及破译.zip
- C++生存游戏
- 职工工作量统计系统.rar
- lbm模拟液滴从壁面滑落
- C++学生成绩管理系统 2018
评论
共有 条评论