资源简介
OpenGL写的一个简单的场景,包括粒子系统实现的喷泉效果和流星雨效果,以及北京音乐的播放
代码片段和文件信息
// 在此处引用程序要求的附加头文件:
#include “5DG_Window.h“
#include // 标准time库文件
#include // 标准数学库函数
#include “texture.h“ // 纹理贴图的头文件
#include “fmod.h“
#define MAXTEXTURE 2 // 预定义纹理贴图数量
#define MAX_PARTICLES 1000 // 定义粒子数量
// 在此处加入程序要求的库到链接器中:
#pragma comment(lib “opengl32.lib“) // 链接时查找OpenGL32.lib
#pragma comment(lib “glu32.lib“) // 链接时查找glu32.lib
#pragma comment(lib “glaux.lib“) // 链接时查找glaux.lib
#pragma comment(lib “fmodvc.lib“) // 把音频库加入到链接器中
// 在此处定义全局变量:
GL_Window* OGL_window;
Keys* OGL_keys;
FSOUND_STREAM *mp3back; // 背景音乐 *.mp3格式
// 在此处定义用户变量:
GLuint texture[MAXTEXTURE]; // 纹理数组,保存纹理名字
GLint wait; // 控制两个粒子系统的显示
BOOL show5DGshowMatrix01; // 显示5DG,显示01字阵
GLint show_amout = 10;
//Matrix01粒子系统
typedef struct // 位置结构体
{
float x;
float y;
bool used;
} CHANNEL;
CHANNEL port[30][30]; //产生粒子的通道口
GLfloat dropSpeed[30]; //各个通道的下落速度
// 01字体粒子系统
#define FONT_COUNT 16
GLfloat font01Size = 1.0f; // 01字阵的字体大小
typedef struct
{
float life; // 粒子生命
float fade; // 粒子衰减速度
float rgb; // 粒子颜色
float xyz; // 粒子位置
float xSpeedySpeedzSpeed; // 粒子在xyz轴的运动速度
int xidyid; // 通道口号
bool live;
}FONTS;
FONTS font[FONT_COUNT][FONT_COUNT]; // 01字阵数组
float speedFator = 500.0f; // 粒子速度的控制参数
//第二个粒子系统
GLfloat Y_speed = 400.0f; //喷泉的速度
GLfloat speedFator2 = 1.5f;
typedef struct
{
float life; // 粒子生命
float fade; // 粒子衰减速度
float rgb; // 粒子的颜色
float xyz; // 粒子位置
float xSpeedySpeedzSpeed; // 粒子的速度
float xgygzg; // 粒子的运动加速度
} PARTICLES;
PARTICLES particle[MAX_PARTICLES]; // 粒子系统数组
GLvoid InitFMOD(void)
{
// 载入音频文件
if (FSOUND_Init(44100 32 0)) // 把声音初始化为44khz
{
// 载入文件bgmusic.mp3
mp3back = FSOUND_Stream_OpenFile(“Data/bgmusic.mp3“ FSOUND_LOOP_NORMAL 0);
}
}
GLvoid FreeFMOD(void)
{
// 释放音频文件
if (mp3back != NULL)
{
FSOUND_Stream_Close(mp3back); // 释放文件bgmusic.mp3
}
}
// 初始化第二个粒子系统
void ParticleInit(void)
{
for (int loop=0; loop {
particle[loop].life = 1.0f; // 赋予每个粒子完整生命
particle[loop].fade = float(rand()%100)/1000.0f+0.003f; // 随机生命衰减速度
particle[loop].r = 1.0f; // 粒子颜色的红色分量
particle[loop].g = 1.0f; // 粒子颜色的绿色分量
particle[loop].b = 1.0f; // 粒子颜色的蓝色分量
particle[loop].xSpeed = (float)200*(cos(loop*3.14/500));
particle[loop].ySpeed = Y_speed;
particle[loop].zSpeed = (float)200*(sin(loop*3.14/500));
particle[loop].xg = 0.0f; // 沿x轴的加速度
particle[loop].yg = -2.0f; // 沿y轴的加速度
particle[loop].zg = 0.0f; // 沿z轴的加速度
}
}
void DrawParticle(void)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 518 2009-04-30 09:06 Scene\Scene.dsw
文件 156672 2009-04-30 09:45 Scene\Debug\vc60.idb
文件 102400 2009-04-30 09:45 Scene\Debug\vc60.pdb
文件 5024 2009-04-30 09:47 Scene\Debug\BuildLog.htm
文件 146 2009-04-30 09:47 Scene\Debug\Scene.exe.em
文件 412672 2009-04-30 09:46 Scene\Debug\vc80.idb
文件 159744 2009-04-30 09:46 Scene\Debug\vc80.pdb
文件 33910 2009-04-30 09:46 Scene\Debug\Texture.obj
文件 35524 2009-04-30 09:46 Scene\Debug\5DG_Window.obj
文件 42616 2009-04-30 09:46 Scene\Debug\5DG‘S Matrix.obj
文件 212 2009-04-30 09:47 Scene\Debug\Scene.exe.em
文件 1312844 2009-04-30 09:47 Scene\Debug\Scene.ilk
文件 561152 2009-04-30 09:47 Scene\Debug\Scene.exe
文件 145 2009-04-30 09:47 Scene\Debug\Scene.exe.intermediate.manifest
文件 67 2009-04-30 09:47 Scene\Debug\mt.dep
文件 2018304 2009-04-30 09:47 Scene\Debug\Scene.pdb
文件 14257 2009-04-30 09:08 Scene\5DG_Window.cpp
文件 9009 2009-04-30 09:08 Scene\Texture.cpp
文件 2050 2009-04-30 09:08 Scene\5DG_Window.h
文件 507 2009-04-30 09:08 Scene\Texture.h
文件 1798 2009-04-30 09:45 Scene\Scene.plg
文件 249 2009-04-30 09:10 Scene\5DG‘S Matrix.asp
文件 249 2009-04-30 09:10 Scene\Texture.asp
文件 21622 2009-04-28 00:31 Scene\Data\Font.JPG
文件 755 2008-04-14 13:32 Scene\Data\Particle.JPG
文件 2889318 2009-04-14 13:32 Scene\Data\Bgmusic.mp3
文件 12194 2009-04-30 09:44 Scene\5DG‘S Matrix.cpp
文件 43611 2009-04-30 09:45 Scene\Fmod.h
文件 50688 2009-04-30 09:46 Scene\Scene.opt
文件 4232 2009-04-30 09:46 Scene\Scene.dsp
............此处省略28个文件信息
- 上一篇:winqsb软件
- 下一篇:吉时利2000说明书
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论