⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scene.cpp

📁 030_Particle_system using opengl
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////
// scene.cpp: implementation of the scene class.
//
//////////////////////////////////////////////////////////////////////

#include "scene.h"

int scene::sirka,scene::vyska;

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

scene::scene()
{
	//////////////////////////////////////
	// smerniky na instancie na triedy nastavim na NULL, aby som ich potom nemazal
	c = NULL;
	font0 = NULL;
	if(!extInit()){ error=1; return;}
	
	ReadInit("data/init.txt");

	font0 = new Font("data/font.bmp",&error);		// vytvorenie fontu
	if(error)return;

	//////////////////////////////////////
	// prepinace

	timeframe = 1.f/200.f;				// v pripade ze nieco zavisy od fps
	clip_distance = vzdialena_orezavacia_rovina;
	kurzor=1;
			
	//////////////////////////////////////
	// vytvarame instancie pouzivanych tried
	c = new camera;
	t_par.load("data/Particle.bmp");
//	base = new Case("data/027model/room.ase", filterForTexture, 1, 0.1f);
//	obj = new C3ds("data/model/angel.3ds", filterForTexture); if(error)return;obj->Rescale(0.025f);

//	if(ext.EXT_separate_specular_color)menu->AddBool( "separatny specular", -1, &set.separate_specular, 0); else set.separate_specular=0;
	if(error)return;
	InitGL();		// nastavenie z-buffra,svetla,...
	
	c->vpd = 5.0f;
	c->vp.set(0, 0, 0);
	c->vu.set(0, 1.0f, 0.0f);
	c->vd.set(0, 0.0f,-1.0f);
}

scene::~scene()
{
	//////////////////////////////////////
	// mazeme instancie tried
	if(font0!=NULL)delete font0;
	if(c!=NULL)delete c;
//	if(obj!=NULL)delete obj;
	//////////////////////////////////////
	KillGL();
}

void scene::InitGL(void)
{
//	if(smenu)ShowCursor(1);
	if(!kurzor)ShowCursor(0);
	if(!fullscreen)
	{
		RECT		WindowRect;					// miesto pre velkost okna
		WindowRect.left=(long)0;
		WindowRect.top=(long)0;
		GetClientRect(hWnd,&WindowRect);				//zistenie rozmerov uzivatelskej casti okna
		ReSizeGLScene(WindowRect.right,WindowRect.bottom);	//nastavenie perspektivy
	}
	else ReSizeGLScene(screen_x, screen_y);	//definovana v tomto subore

	glEnable(GL_TEXTURE_2D);		// Povolenie zobrazovanie text鷕
	glShadeModel(GL_SMOOTH);		/*nastavuje tienovanie
	GL_SMOOTH - objekty su tienovane t.j. prechody medzi farbami bodov su plinule (gouradovo (s)tienovanie)
	GL_FLAT   - objekty nie su tienovane ziadne plinule prechody */

	glClearColor(0.0f, 0.0f, 0.0f, 0.0f); //specifikuje hodnoty na cistenie pomocou glClear par.: red, green, blue, alpha (cierny podklad)
//	glClearColor(0.6f, 0.6f, 0.6f, 0.0f); //specifikuje hodnoty na cistenie pomocou glClear par.: red, green, blue, alpha (cierny podklad)
	glClearDepth(1.0f);  //specifikuje hodnoty na cistenie pomocou glClear par.: depth (hlbka)
	
	/* ZAPNUTIE HLBKOVEHO TESTU */
	glEnable(GL_DEPTH_TEST);		// zapne h錬kov

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -