资源简介
使用的 主要技术有:
1、大面积山脉渲染,使用Heightmap构造地形,7级 LOD 细节精度,地形无限重复循环 。
2、清晰、自然的地表贴图。
3、读取.MD2 、.MS3D 格式的3D模型文件。
4、粒子系统,产生爆炸、炊烟等特效。
5、太阳光晕。
6、使用Blend模拟Brightness/contrast调节图象亮度。
操作控制
可以在GameSetting菜单中设定:
1.视频属性 ( Video Setting )
1).屏幕分辨率( Resolution )
游戏率默认为800*600,在任务执行前可改变分辨率,但不会立即生效,只有在初始化任务时才改变分辨率。
2).屏幕亮度( Brigthness )
在不同的硬件配置上,屏幕亮度往往表现出较大差异,通过该项可将亮度调节到最佳。
3).视野范围 ( Visible Distance )
调节地形绘制的距离。对于配置较低的硬件,适当降低视野距离可提高帧速率,但由于远处地形网格较粗,对帧速率提高贡献并不大。
4).雾浓度 ( Fog Density )
2.音频属性 ( Audio Setting )
1).背景音乐(music)
可以打开或关闭背景音乐,可以调节音量。
音乐播放 audio/music/menu.mp3 ,如果你有自己喜爱的mp3音乐文件可以将它替换 menu.mp3 文件。
2).音效( sound )
可以打开或关闭音效,可以调节音量。游戏中的枪声与人物的发声具有3D效果。
3.键盘操作 ( Keyboard Setting )
以下操作可以更改
Up、Down、Left、Right设定移动操作。
Fire 射击
Jump 跳跃
Zoom 放大远处景物
Help 弹出帮助
修改方法:用鼠标点击选项,然后输入新的按键。
另外,游戏保留了几个开发模式下的操作:
Page Up 提升视点高度
Page Down 降低视点高度 (可以看到地形绘制区域)
L 线框模式
F 冻结所有敌人
V 隐身
N 敌人攻击力为零
I 隐藏房子
O 隐藏敌人
P 隐藏树木
在游戏运行中,按 Help 项的按键获得帮助。
4.鼠标操作
鼠标的移动可改变视角,默认设定左键为射击,右键为放大。
代码片段和文件信息
// 3dE.cpp: implementation of the C3dE class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “3dE.h“
#include “heightmap.h“
#include “math.h“
#include “audio.h“
#include “imgtext.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
C3dE::C3dE()
{
m_bAttacked=false;
m_bAttacking=false;
m_Height=8;
m_baseHeight=255;
m_eyePos=VERTEX(000);
m_RotX=0;
m_RotY=180;
m_RotZ=0;
m_RunVector=NORMAL(000);
m_JumpSpeed=0.4f;
m_Acceleration=0.8f;
m_MaxRunSpeed=1.5f;
m_Decrease=0.8f;
m_AirDecrease=0.0001f;
m_Gravity=0.02f;
m_bFlying=false;
m_maxDifferent=2;
m_YBiasAngle=0;
m_YBias=0;
m_ZBiasAngle=0;
m_bBiasLeft=true;
m_gunYBias=0;
m_gunZBias=0;
m_gunState=0;
m_maxFOVAngle=60;
m_minFOVAngle=15;
m_curFOVAngle=60;
m_orgFOVAngle=60;
m_bZoomed=false;
m_bZoomOut=false;
m_iZoomAngle=1;
m_mouseSpeed=0.1f;
}
C3dE::~C3dE()
{
}
bool C3dE::Init3dExplorer()
{
Reset3dExplorerPos();
return true;
}
void C3dE::Reset3dExplorerPos()
{
m_eyePos.xpos=m_cGS.m_fViewerPosX;
m_eyePos.zpos=m_cGS.m_fViewerPosZ;
m_eyePos.ypos=m_cHmap.GetHeight(m_eyePos.xposm_eyePos.zpos)+m_Height;
m_baseHeight=m_eyePos.ypos-m_Height;
m_RotY=m_cGS.m_fViewerRotY;
m_RotX=0;
m_cHmap.m_myHealth=1;
m_bAttacking=false;
m_curFOVAngle=60;
m_orgFOVAngle=60;
m_bZoomed=false;
m_bZoomOut=false;
m_iZoomAngle=10;
ChangeFOVAngle();
UpdateHeightmap();
}
void C3dE::ProcessInput()
{
if(m_cHmap.m_myHealth<=0)
{
m_RotX=0;
m_RotY+=0.2f;
UpdateHeightmap();
if(m_cHmap.m_myHealth!=-10)
{
m_cHmap.m_myHealth=-10;
m_iZoomAngle=60;
ChangeFOVAngle();
m_bAttacking=false;
int sound=SOUND_DEATH_1+rand()%3;
CAudio::SetSoundPos(sound&m_eyePos);
CAudio::Play(sound1falsefalse);
}
return;
}
//////////////////////////////////////////////////////////
/////////////// mouse rotate /////////////////////////////
m_RotY+=(400-m_cInput.m_mousePosX)*m_mouseSpeed;// /mouse Speed
m_RotX-=(300-m_cInput.m_mousePosY)*m_mouseSpeed;
// Center mouse
SetCursorPos(400300);
///////////////////////////////////////////////////////////
/////////////// Run //////////////////////////////////////
// Keyboard input
if (m_cInput.m_keys[m_cGS.m_iKeyForward] && (!m_bFlying))
{
m_RunVector.nz-=m_Acceleration;
if(m_RunVector.nz<-m_MaxRunSpeed)m_RunVector.nz=-m_MaxRunSpeed;
////////////////Y bias
if (m_YBiasAngle >= 359)
m_YBiasAngle = 0;
else
m_YBiasAngle+= 8;
m_YBias=sinf(m_YBiasAngle*0.0174533f )/4.0f;
}
else
{
if(! m_cInput.m_keys[m_cGS.m_iKeyBackward] && m_RunVector.nz<0 )
{
if(m_bFlying) m_RunVector.nz+=m_AirDecrease;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 725045 1999-01-01 02:21 FPS射击游戏《林海雪原》完整源代码\lhxy\3dExplorer.exe
文件 87224 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\ambient.wav
文件 20152 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird0.wav
文件 16056 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird1.wav
文件 7352 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird2.wav
文件 34488 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\bird3.wav
文件 10424 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird4.wav
文件 26808 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird5.wav
文件 48824 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird6.wav
文件 47288 2001-06-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\ambient\Bird7.WAV
文件 6248 1998-08-04 20:30 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\menu\click.wav
文件 2838361 2001-09-28 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\Music\menu.mp3
文件 20540 2002-08-31 12:10 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\blank.wav
文件 255642 2001-12-29 07:11 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\death1.wav
文件 20680 2002-08-28 22:30 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\death2.wav
文件 140442 2001-12-29 07:12 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\death3.wav
文件 21738 1999-11-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\Jump.wav
文件 11062 1999-11-21 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\Land.wav
文件 26912 2002-08-31 12:11 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\pain1.wav
文件 24458 2002-08-31 12:11 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\pain2.wav
文件 31112 2002-08-31 12:11 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\pain3.wav
文件 6090 2000-11-01 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\run0.wav
文件 8594 2000-11-01 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\run1.wav
文件 8594 2000-11-01 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\run2.wav
文件 8594 2000-11-01 00:00 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\soldier\run3.wav
文件 10424 2002-08-31 15:27 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\weapon\gunShot.wav
文件 24156 2002-01-01 10:14 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\weapon\gunshot0.wav
文件 18682 2002-08-26 11:40 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\weapon\multiSound.wav
文件 3358 2002-01-23 21:39 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\weapon\singleSound.wav
文件 43462 2002-08-31 09:54 FPS射击游戏《林海雪原》完整源代码\lhxy\audio\weapon\whiz.wav
............此处省略779个文件信息
相关资源
- Microsoft Visual C++.NET技术内幕
- VC++6.0技术内幕第五版中文版+英文版
- Visual C++ 网络高级编程PDF 源代码
- Visual C++开发基于SNMP的网络管理软件
- MFC平台C++语言的小游戏代码
- C++程序设计教程(第2版).钱能(带详
- win 10解决系统缺失vc++库
- C++实现监控IP数据包
- 《C++程序设计原理与实践》第二版英
- C++ 通过FFmpeg将rtsp视频流到本地mp4文件
- C++程序设计 思想与方法 第2版 完整扫
- 期货CTP测试
- Matlab与C++混合程序设计第三版
- vc++课程设计 让计算机来猜测用户“暗
- 粒子滤波器+目标跟踪的C++实现,VS2
- Visual C++数据采集与串口通信测控应用
- Effective C++改善程序与设计的55个具体
- FFmpeg x86 x64库
- OpenGL迷宫山东大学图形学实验三
- VC++24点游戏完整程序源码
- VC++外挂框架.rar
- VC++技术内幕第五版中文pdf
- C和C++程序员面试秘笈-董山海_高清版
- 线性代数C++模板库 Eigen 3.1.1 的CHM文档
- Effective C++中文版(第三版)
- VisualC++网络高级编程.(人民邮电.陈坚
- C++黑客编程揭秘与防范.pdf
- COM本质论.pdf )
- 基于VC++利用MFC做的图书管理系统
- MFC智能停车场管理系统
评论
共有 条评论