📄 drawglscene.cpp
字号:
//////////////////////////////////////////////////////////////////////
// scene.cpp: implementation of the scene class.
//
//////////////////////////////////////////////////////////////////////
#include "scene.h"
//////////////////////////////////////////////////////////////////////
// Tu je vsetko co sa kresli
void scene::DrawGLScene()
{
vec4 lp[17];
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
c->MoveWorld(1/timeframe, ROTATE_WALK|ROTATE_ABOUT_POINT); // otoci svetom na zaklade vstupov od mysi a klavesnice
c->SetTransform();
if(keys['L'] && keys[VK_CONTROL]){ english = !english; keys['L']=0; }
if(keys['P'])glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
else glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glEnable(GL_TEXTURE_2D);
// glEnable(GL_LIGHTING);
static int stage=3;
if(keys['1'])stage=1;
else if(keys['2'])stage=2;
else if(keys['3'])stage=3;
t_par.glBindTexture2D();
//DrawQuad(vec(-0.5f,-0.5f,0),vec(0,0,1),vec(1,0,0),vec(0,1,0));
if(!keys['C'])
{
par.Emit(timeframe);
par.Update(timeframe);
}
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE,GL_ONE);
par.Render(c->vr, c->vu);
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
glDisable(GL_LIGHTING);
glEnable(GL_TEXTURE_2D);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glColor3f(1,1,1);
// glTranslatef(0,1,0); Paint_axes();
/* this->Print_vec( 0, 1, c->vp, "vp");
this->Print_vec( 0, 2, c->vr, "vr");
this->Print_vec( 0, 3, c->vu, "vu");
this->Print_vec( 0, 4, c->vd, "vd");
*/
glColor4f(1,1,1,1);
// vypis FPS
glEnable( GL_TEXTURE_2D);
font0->Begin();
timeframe = timer0.GetTime();
timer0.Reset();
fps_counter.GetAvgFps(timeframe,0.2f);
gcvt( (double)fps_counter.avg_fps, 4, text);
font0->Print( 0, 0, text, 0);
if(keys[VK_F12]){ SaveScreen_BMP(); keys[VK_F12] = 0;}
gcvt( (double)par.par.size(), 6, text);
font0->Print( 0, 1, english?"count:":"pocet:", 0);
font0->Print( 7, 1, text, 0);
if(keys['H']) // zobrazenie helpu
{
int i=3;
glDisable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glColor4f(0,0,0,0.4f);
glLoadIdentity();
glBegin(GL_QUADS);
glVertex2i(40,210);
glVertex2i(800-60,210);
glVertex2i(800-60,600-48);
glVertex2i(40,600-48);
glEnd();
glColor4f(1,1,1,1);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_COLOR);
glEnable(GL_TEXTURE_2D);
font0->Print(10,i++,"Program: Particle system", 0);
glColor3f(0.9f,0.9f,1.0f);
if(english)
{
font0->Print(8,i++,"Programmer: Marek Mizanin - www.mizanin.szm.sk",0);
glColor3f(1.0f,1.0f,1.0f);
font0->Print(15,i++,"Controls:", 1);
font0->Print(20,i++,"P - wire frame", 1);
font0->Print(20,i++,"C - freeze particle", 1);
font0->Print(20,i++,"V - don't show sprites", 1);
font0->Print(20,i++,"B - don't show explosion rockets", 1);
i++;
font0->Print(20,i++,"F12 - take screenshot",1);
font0->Print(20,i++,"F4 - toggle fullscreen", 1);
font0->Print(20,i++,"H - help", 1);
i++;
font0->Print(2,i++,"Controls of camera:",0);
font0->Print_scale(2,i++,"W,S,arrow up,down,left and right button - move forward and backward",1,0.94f,1);
font0->Print(2,i++,"A,D,Delete,Insert - move left and right",1);
font0->Print(2,i++,"Home,End - move up and down",1);
font0->Print(2,i++,"arrow right,left and moving mouse <-> - rotation about y axis",1);
font0->Print(2,i++,"Page Up, Page Down a moving mouse | - rotation about x axis",1);
font0->Print(2,i++,"Shift - slow moving",1);
font0->Print(2,i++,"R - reset camera",1);
}
else
{
font0->Print(8,i++,"Naprogramoval: Marek Mizanin - www.mizanin.szm.sk",0);
glColor3f(1.0f,1.0f,1.0f);
font0->Print(15,i++,"Pouzivane klavesy:", 1);
font0->Print(20,i++,"P - zapne ciarovy rezim", 1);
font0->Print(20,i++,"C - zastavy cestice", 1);
font0->Print(20,i++,"V - nezobrazuje prudy", 1);
font0->Print(20,i++,"B - nezobrazuje vybuchujuce rakety", 1);
i++;
font0->Print(20,i++,"F12 - ulozi obrazovku do subora",1);
font0->Print(20,i++,"F4 - prepina do/z fullscreen", 1);
font0->Print(20,i++,"H - help", 1);
i++;
font0->Print(4,i++,"Ovladanie kamery:",0);
font0->Print_scale(4,i++,"W,S,sipka hore,dole,lave a prave tlacitko - pohyb dopredu a dozadu",1,0.94f,1);
font0->Print(4,i++,"A,D,Delete,Insert - pohyb do boka vlavo vpravo",1);
font0->Print(4,i++,"Home,End - pohyb hore, dole",1);
font0->Print(4,i++,"sipka vpravo,vlavo a pohyb mysov <-> - rotacia okolo osi y",1);
font0->Print(4,i++,"Page Up, Page Down a pohyb mysov | - rotacia okolo osi x",1);
font0->Print(4,i++,"Shift - pomalsi pohyb",1);
font0->Print(4,i++,"R - reset kamery",1);
}
}
font0->End();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -