資源簡介
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說明書
評論
共有 條評論