亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? particle_system.cpp

?? 030_Particle_system using opengl
?? CPP
字號:
// Particle_system.cpp: implementation of the Particle_system class.
//
//////////////////////////////////////////////////////////////////////

#include "Particle_system.h"
#include <time.h>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Particle_system::Particle_system()
{
	srand( (unsigned)time( NULL ) );

//	color[1].load("data/paletta01.bmp");
	color[0].set_fire();
	color[3].set_ice();
	color[4].set_smoke();
	color[5].set_rainbow();
	color[1].add(vec(1,0.5f,0));
	color[1].add(vec(1,0.0f,0));
	color[1].add(vec(0.5f,0.0f,0));
	color[1].add(vec(0.f,0.f,0));
	
	color[2].add(vec(1,0.8f,1.0f));
	color[2].add(vec(1,0.0f,0.0f));
	color[2].add(vec(1,0.0f,0));
	color[2].add(vec(0.5f,0.0f,0));
	color[2].add(vec(0.f,0.f,0));

	for(int i=5; i<10; i++)
		for(int j=0; j<6; j++)
			color[i].add(vec(frand(),frand(),frand()));

	func[0].add(0.05f);
	func[0].add(0.05f);
	func[0].add(0.05f);
	func[0].add(0.05f);
	func[0].add(0.05f);
	func[0].add(0.05f);
	func[0].add(0.004f);
	func[0].add(0.002f);

	func[1].add(0.1f);

	Emiter_stream *em;
/*	em = new Emiter_stream;
	em->max_particles=500;
	em->pos.set(2.5f,1.5f,0);
	em->vel.set(-1,-0.4f,0);
	em->grav.set(0,0,0);
	em->r = &func[0];
	em->color_par.clear();
	em->color_emiter = &color[2];
	em->time_to_add_particle = 0.f;
	em->t_of_color_cycle = 0.f;
	em->period_of_color_cycle = 4.f;
	em->lifetime = 4.f;
	em->angle_of_scatter = 8.f;
	em->angle_of_cut_out = 0.f;
	emiter.push_back(em);

	em = new Emiter_stream;
	em->max_particles=500;
	em->pos.set(2.5f,1.5f,0);
	em->vel.set(-1,-0.4f,0);
	em->grav.set(0,0,0);
	em->r = &func[0];
	em->color_par.clear();
	em->color_emiter = &color[1];
	em->time_to_add_particle = 0.f;
	em->t_of_color_cycle = 0.f;
	em->period_of_color_cycle = 4.f;
	em->lifetime = 4.f;
	em->angle_of_scatter = 14.f;
	em->angle_of_cut_out = 8.f;
	emiter.push_back(em);*/

	for( i=0; i<10; i++)
	{
		em = new Emiter_stream;
		em->max_particles=500;
		em->pos.set(-2.5f+5.5f*(float)i/10.f,-2,0);
		em->vel.set(0,3.0f,0);
		em->grav.set(0,-1,0);
		em->r = &func[0];
		em->color_par.clear();
		em->color_emiter = &color[rand()%10];
		em->time_to_add_particle = 0.f;
		em->t_of_color_cycle = 0.f;
		em->period_of_color_cycle = 2.f;
		em->lifetime = 1.f;
		em->angle_of_scatter = 5.f+5.f*frand();
		em->angle_of_cut_out = 0.f;
		em->period_of_effect = 10;
		em->max_time = 3.0f;
		em->time = (float)i/10.f;
		emiter.push_back(em);
	}

	Emiter_sphere *es;
	for( i=0; i<100; i++)
	{
		es = new Emiter_sphere;
		es->max_particles=500;
		es->pos.set(0,-2,0);
		es->vel.set(1.5f*frand2(),4.0f,1.5f*frand2());
		es->grav.set(0,-1,0);
		es->r_rocket = &func[1];
		es->r_sphere = &func[0];
		es->color_par.set(1,1,1);
		es->lifetime_rocket = 1.0f;
		es->lifetime_sphere = 1.5f;
		es->period_of_effect = 10.f*frand2()+50.f;
		es->angle_of_scatter = 14.f;
		es->times=frand()*es->period_of_effect;
		es->gen=600;
		emiter.push_back(es);
	}
}

Particle_system::~Particle_system()
{
	for(int i=0; i<emiter.size(); i++)
		delete emiter[i];
}

inline void DrawQuad(const vec &p, const vec &s, const vec &t)
{
	// 3 4
	// 1 2
	glTexCoord2f(0,0);glVertex3f( p.v[0], p.v[1], p.v[2]);
	glTexCoord2f(1,0);glVertex3f( p.v[0]+s.v[0],p.v[1]+s.v[1],p.v[2]+s.v[2]);
	glTexCoord2f(0,1);glVertex3f( p.v[0]+t.v[0],p.v[1]+t.v[1],p.v[2]+t.v[2]);
	glTexCoord2f(1,1);glVertex3f( p.v[0]+s.v[0]+t.v[0],p.v[1]+s.v[1]+t.v[1],p.v[2]+s.v[2]+t.v[2]);
}

void Particle_system::Render(vec vr, vec vu)
{
	for(int i=0; i<par.size(); i++)
	{
		glBegin(GL_TRIANGLE_STRIP);				// 3  4  order of points
		//	glNormal3fv(n.v);					// 1  2
			if(par[i].pal_color)
				glColor3fv( par[i].getColor().v);
			else
				glColor3fv( par[i].color.v);
			DrawQuad( par[i].pos-par[i].get_r()*vr-par[i].get_r()*vu, 2.f*par[i].get_r()*vr, 2.f*par[i].get_r()*vu);
		glEnd();
	}
}

void Particle_system::Update(float timeframe)
{
	for(int i=0; i<par.size(); i++)
	{
		par[i].pos += timeframe*par[i].vel;
		par[i].vel += timeframe*par[i].grav;
		
	/*	if(par[i].r<0.f)
		{
			par.erase( par.begin() + i);
			i--;
			continue;
		}
		*/
		par[i].t += timeframe/par[i].lifetime;
		if(par[i].t>1)
		{
			par[i] = par[par.size()-1];
			par.pop_back();
			i--;
			continue;
		}
	}
}

void Particle_system::Emit(float timeframe)
{
	for(int i=0; i<emiter.size();i++)
	{
		if(keys['V'] && i<20)continue;
		if(keys['B'] && i>=20)break;
		if(emiter[i]->Emit_next_frame(timeframe))
			while(emiter[i]->Emit_test())
				par.push_back(emiter[i]->Emit());
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美经典一区二区| 久久综合久久鬼色中文字| 高清久久久久久| 国产麻豆精品一区二区| 国产99久久久久久免费看农村| 久久99精品国产.久久久久久| 麻豆精品视频在线观看视频| 美女视频黄免费的久久| 美国十次了思思久久精品导航| 久久草av在线| 国产jizzjizz一区二区| 一本大道av一区二区在线播放| 色综合亚洲欧洲| 在线电影国产精品| 欧美videossexotv100| 久久久国产精华| 一区二区三区四区视频精品免费 | 91在线丨porny丨国产| 色综合色综合色综合色综合色综合 | 婷婷综合五月天| 久久99精品网久久| 不卡av在线网| 欧美精品九九99久久| 精品日韩在线一区| 国产日韩欧美亚洲| 亚洲韩国精品一区| 国产福利91精品| 91黄视频在线| 久久综合国产精品| 一区二区三区四区在线| 韩日欧美一区二区三区| 色香色香欲天天天影视综合网| 日韩一区二区在线观看视频| 日本一区二区成人| 三级成人在线视频| 成人丝袜视频网| 51久久夜色精品国产麻豆| 久久久久久久综合日本| 亚洲网友自拍偷拍| 波多野结衣的一区二区三区| 欧美二区三区91| 亚洲裸体xxx| 盗摄精品av一区二区三区| 欧美精品久久99| 玉米视频成人免费看| 国产麻豆精品视频| 日韩欧美国产小视频| 亚洲一区二区在线视频| 成人一区二区三区视频| 精品国产3级a| 日韩成人午夜精品| 欧美伊人久久久久久久久影院| 国产日韩精品视频一区| 日本在线观看不卡视频| 欧美三级蜜桃2在线观看| 国产精品久久久久国产精品日日| 麻豆精品精品国产自在97香蕉| 色女孩综合影院| 17c精品麻豆一区二区免费| 国产精品一级二级三级| 精品国产三级电影在线观看| 日韩vs国产vs欧美| 3atv一区二区三区| 午夜在线成人av| 欧美日韩一区成人| 亚洲国产精品麻豆| 欧美无人高清视频在线观看| 亚洲理论在线观看| 在线视频一区二区免费| 亚洲美女少妇撒尿| 精品日韩成人av| 激情五月激情综合网| 日韩欧美国产三级电影视频| 日本在线不卡视频| 欧美xxxx老人做受| 国产精品综合一区二区三区| 久久久精品免费免费| 国产成人高清视频| 亚洲国产精品传媒在线观看| 成人av资源下载| 亚洲欧美日韩国产综合在线| 日本黄色一区二区| 亚洲r级在线视频| 制服.丝袜.亚洲.另类.中文| 免费在线看成人av| 国产亚洲成av人在线观看导航| 国产成人午夜精品影院观看视频 | 99精品在线观看视频| 亚洲另类春色校园小说| 这里只有精品99re| 国产激情精品久久久第一区二区| 久久久亚洲高清| 国产成人精品免费网站| 亚洲精品国产a| 日韩欧美二区三区| 成年人国产精品| 午夜电影网一区| 久久久久久久久97黄色工厂| 色先锋资源久久综合| 日韩av一区二| 日本一区二区三区国色天香| av午夜精品一区二区三区| 亚洲免费资源在线播放| 日韩一区二区在线观看视频 | 在线看国产日韩| 麻豆成人免费电影| 国产精品久久久久久妇女6080 | 亚洲综合另类小说| 欧美一级专区免费大片| 丁香天五香天堂综合| 午夜精品国产更新| 欧美激情一区三区| 日韩一级大片在线观看| 99热精品一区二区| 激情综合亚洲精品| 亚洲综合视频在线| 中文字幕国产一区| 日韩一区二区三区在线观看| 99riav一区二区三区| 久久精品国产亚洲高清剧情介绍 | 风间由美中文字幕在线看视频国产欧美| 亚洲日本在线天堂| 日本强好片久久久久久aaa| 高清免费成人av| 亚洲成a人片综合在线| 国产精品高潮久久久久无| 精品国产在天天线2019| 欧美无乱码久久久免费午夜一区 | 91在线观看地址| 国产成人久久精品77777最新版本| 五月婷婷综合网| 亚洲视频每日更新| 国产精品人人做人人爽人人添| 欧美大片国产精品| 5858s免费视频成人| 欧美日韩日日骚| 欧美性三三影院| 91豆麻精品91久久久久久| av影院午夜一区| 成人午夜在线播放| 国产91在线|亚洲| 国产成人a级片| 国产一区二区美女| 国产成人激情av| 懂色av一区二区在线播放| 国内精品久久久久影院一蜜桃| 免费人成在线不卡| 日本欧美久久久久免费播放网| 亚洲gay无套男同| 爽好久久久欧美精品| 免费观看日韩电影| 精品综合久久久久久8888| 裸体歌舞表演一区二区| 精品一区二区三区在线观看国产 | 99久久伊人精品| 成人黄色777网| 色综合久久综合网| 欧美最猛黑人xxxxx猛交| 欧美视频一区二区在线观看| 欧美日韩在线播放| 日韩视频在线一区二区| 精品国产麻豆免费人成网站| 久久先锋影音av鲁色资源网| 久久精品夜夜夜夜久久| 国产精品福利影院| 亚洲一区二区三区四区五区黄| 亚洲成人1区2区| 久草热8精品视频在线观看| 国产成人av电影免费在线观看| 成人高清免费在线播放| 欧美亚洲国产一卡| 日韩精品一区二区三区视频| 国产日韩一级二级三级| 亚洲乱码中文字幕综合| 欧美aaaaaa午夜精品| 成人免费看的视频| 91福利资源站| 久久亚洲一区二区三区四区| 国产精品国产馆在线真实露脸| 亚洲精品国产无套在线观| 日本美女一区二区三区| 成人永久看片免费视频天堂| 欧美图片一区二区三区| 久久久久九九视频| 亚洲成av人片在线观看| 粉嫩av一区二区三区| 欧美日韩国产一级片| 亚洲国产精品成人综合| 污片在线观看一区二区| 丁香桃色午夜亚洲一区二区三区| 欧美色爱综合网| 中文字幕精品三区| 久久99精品一区二区三区| 欧美亚洲一区二区三区四区| 欧美精品一区视频| 亚洲午夜久久久久久久久电影院 | 91免费版pro下载短视频| 日韩精品一区二区三区swag| 一区二区三区四区中文字幕| 国产麻豆成人传媒免费观看|