?? scene.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 + -