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

📄 initsence.cpp

📁 涉及windows游戏编程中的一些源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	MVECTOR mdir={0,-1,0,1};
	g_bbm.SetBillBoardDir(mdir);
    g_bbm.SetBillBoardUp(cinfo->vup);
	g_bbm.SetCameraInfo(g_pcm); 
    g_bbm.SetCuller(&Culler);
	int i;
	int  h = MapCfg.GetInteger("BillBoard","height");
	int  w = MapCfg.GetInteger("BillBoard","width");
	C2DBillBoard* bb;
	for(i=0;i<MB;i++)
	{
		bb = g_bbm.CreateBillBoard();
		float x,y;
		bb->m_height=(rand()%(h/2)+h/2)/3.0; 
		bb->m_width =(rand()%(w/2)+w/2)/3.0; 
		bb->m_x =x=rand()%(terrain.GetX()-5) +2 + (rand()%8)/ 7.0;
		bb->m_y =y=rand()%(terrain.GetY()-5) +2 + (rand()%8)/ 7.0;
		bb->m_z =terrain.GetHeight(x,y)- 0.1*bb->m_height ;
		g_bbm.Add(bb,rand()%typecount);
	}
}
void InitFlare()
{   
	GLuint texSecond;
	GLuint texCross;
	GLuint texRing;
	GLuint texMain;
	GLuint texMain2;
	GLuint texSecond2;

	texSecond  =  g_tex_mgr.LoadTexture("data\\flare\\second1.jpg");
	if(texSecond == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\second1.jpg");
      goto error_exit;;
	}

	texCross   =  g_tex_mgr.LoadTexture("data\\flare\\cross.jpg");
	if(texCross == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\cross.jpg");
      goto error_exit;;
	}

	texRing    =  g_tex_mgr.LoadTexture("data\\flare\\ring.jpg"); 
	if(texRing == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\ring.jpg");
      goto error_exit;;
	}


	texMain    =  g_tex_mgr.LoadTexture("data\\flare\\main1.jpg"); 
	if(texMain == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\main1.jpg");
      goto error_exit;;
	}


	texSecond  =  g_tex_mgr.LoadTexture("data\\flare\\second1.jpg");
	if(texSecond == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\second1.jpg");
      goto error_exit;;
	}


	texMain2   =  g_tex_mgr.LoadTexture("data\\flare\\main2.jpg"); 
	if(texMain2 == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\main2.jpg");
      goto error_exit;
	}


	texSecond2 =  g_tex_mgr.LoadTexture("data\\flare\\second2.jpg");
	if(texSecond2 == -1)
	{
	  Console.Printf("纹理文件加载失败 :%s","data\\flare\\second2.jpg");
      goto error_exit;;
	}



	flare.SetLocation( MapCfg.GetInteger("LensFlar","pos_x"),
				       MapCfg.GetInteger("LensFlar","pos_y"),
		               MapCfg.GetInteger("LensFlar","pos_h"));
	
	flare.SetCamera(g_pcm); 

	flare.AddMainNode(100,texMain);
	flare.AddMainNode(30,texCross);
	flare.AddMainNode(30,texRing);
	flare.AddMainNode(80,texMain2);

	flare.AddSubNode(180,2.0,texSecond);
	flare.AddSubNode(80,1.0,texSecond);
	flare.AddSubNode(60,1.3,texSecond2);
	flare.AddSubNode(6,1.1,texMain);
	flare.AddSubNode(15,1.0,texSecond);
	flare.AddSubNode(20,1.0,texSecond2);
	flare.AddSubNode(30,-0.4,texSecond);
	flare.AddSubNode(0,0.90,texMain);
	flare.AddSubNode(10,-0.20,texMain);
    return ;

error_exit:
	Console.Printf("加载眩光体纹理失败!");
    TerminateApp();
}


void DrawCircle(float r,float z)
{
	glBegin(GL_TRIANGLE_FAN);
	glVertex3f(0,0,z);
	float x,y;
	for(int i =0;i<=360;i++)
	{
		x = r * Math.Cos(i);
		y = r * Math.Sin(i);
        glVertex3f(x,y,z);
	}
	glEnd();
}
void DrawBillBoad(int id)
{
	glBegin(GL_QUADS);
    glTexCoord2f(0,0);	
		glVertex3f(-2,0,0);
	glTexCoord2f(1,0); 
		glVertex3f(2,0,0);
	glTexCoord2f(1,1);
		glVertex3f(2,0,4);
	glTexCoord2f(0,1);  
		glVertex3f(-2,0,4);
	glEnd();
}


void DrawLensMask()
{
	
	  RECT rt;
	  GetClientRect(g_app.m_hMainWnd,&rt);
	  glClearStencil(0);
	  float a =float(rt.right -rt.left)/(rt.bottom  - rt.top);
      glEnable(GL_STENCIL_TEST);
	  glStencilFunc(GL_ALWAYS,1,1);
	  //glClear(GL_STENCIL_BUFFER_BIT);

	  //glStencilOp(GL_REPLACE,GL_REPLACE,GL_REPLACE);
	  glStencilOp(GL_INVERT,GL_INVERT,GL_INVERT);
	  	glMatrixMode(GL_PROJECTION);
		glPushMatrix();//=================
		glLoadIdentity();
		glOrtho(-100,100,-100 / a,100  / a,-500.0,500.0);
		glMatrixMode(GL_MODELVIEW);
		glPushMatrix();////////////
		glLoadIdentity();
	    glColor3f(1.,1.,1.);
		DrawCircle(50,-20);
	   // glStencilOp(GL_INVERT,GL_INVERT,GL_INVERT);
		glBegin(GL_LINES);
		   glVertex3f(-50,0,-30);
		   glVertex3f(50 ,0,-30);
		   glVertex3f(0,-50,-30);
		   glVertex3f(0,50,-30);
		glEnd();

		glPopMatrix();////////////
	    glMatrixMode(GL_PROJECTION);
		glPopMatrix();//======================

	glDisable(GL_STENCIL_TEST);
}

void DrawCross()
{
	
	RECT rt;
	glPushAttrib(GL_ENABLE_BIT);
	glDisable(GL_BLEND);
	glDisable(GL_LIGHTING);
	glDisable(GL_TEXTURE_2D);
	GetClientRect(g_app.m_hMainWnd,&rt);
	float a =float(rt.right -rt.left)/(rt.bottom  - rt.top);
	glMatrixMode(GL_PROJECTION);
	glPushMatrix();
	glLoadIdentity();
	glOrtho(-100,100,-100 / a,100  / a,-500.0,500.0);
	glMatrixMode(GL_MODELVIEW);
	glPushMatrix();
	glLoadIdentity();
	glColor3f(0.,1.,1.);
	glDisable(GL_DEPTH_TEST);
	glLineWidth(1.0);
	glBegin(GL_LINES);
		glVertex3f(-5,0,-30);
		glVertex3f(5 ,0,-30);
		glVertex3f(0,-5,-30);
		glVertex3f(0,5,-30);
	glEnd();
	glLineWidth(1);
	glColor4f(1.0,0,0,1);
	glPointSize(5.0);
	glBegin(GL_POINTS);
	glVertex3f(0,0,-30);
	glEnd();
	glPointSize(1.0);
	glEnable(GL_DEPTH_TEST);
	glMatrixMode(GL_MODELVIEW);
	glPopMatrix();
	glMatrixMode(GL_PROJECTION);
	glPopMatrix();
	
	
    glPopAttrib();
}

void LoadMapCfg()
{
	BOOL bLoad = MapCfg.Load(Configure.GetString("Map","map"));
	if(bLoad == FALSE)
	{
		//[Map];
		MapCfg.InsertItem("Map","size"      , "1025");
		MapCfg.InsertItem("Map","maintex"   , "data\\map\\textrue2048.jpg");
		MapCfg.InsertItem("Map","mapfile"   , "data\\map\\map1024.map");
		MapCfg.InsertItem("Map","strength"  , "0.113");
		MapCfg.InsertItem("Map","texdetail","19");
		MapCfg.InsertItem("Map","detail1","data\\map\\detail1.jpg");
		MapCfg.InsertItem("Map","detail2","data\\map\\detail2.jpg");
		MapCfg.InsertItem("Map","detail3","data\\map\\detail3.jpg");
		MapCfg.InsertItem("Map","detail4","data\\map\\detail4.jpg");
		MapCfg.InsertItem("Map","detail5","data\\map\\detail5.jpg");
		MapCfg.InsertItem("Map","detail6","data\\map\\detail6.jpg");
		MapCfg.InsertItem("Map","detail7","data\\map\\detail7.jpg");
		MapCfg.InsertItem("Map","detail8","data\\map\\detail8.jpg");
		MapCfg.InsertItem("Map","is_detail_tex","ON");
		MapCfg.InsertItem("Map","smoothpass","3");
		MapCfg.InsertItem("Map","lighttex","ON"); 
		
		//[SkyBox]
		MapCfg.InsertItem("SkyBox","style"  , "BOX");
		MapCfg.InsertItem("SkyBox","left"   , "data\\skybox\\left.jpg");
		MapCfg.InsertItem("SkyBox","right"  , "data\\skybox\\right.jpg");
		MapCfg.InsertItem("SkyBox","front"  , "data\\skybox\\front.jpg");
		MapCfg.InsertItem("SkyBox","back"   , "data\\skybox\\back.jpg");
		MapCfg.InsertItem("SkyBox","top"    , "data\\skybox\\top.jpg");
		MapCfg.InsertItem("SkyBox","bottom" , "data\\skybox\\bottom.jpg");
		MapCfg.InsertItem("SkyBox","height" , "320");
		MapCfg.InsertItem("SkyBox","start_h", "-100");
		MapCfg.InsertItem("SkyBox","start_x", "0");
		MapCfg.InsertItem("SkyBox","start_y", "0");
			
		//[LensFlar]
		MapCfg.InsertItem("LensFlar","pos_h","200");
		MapCfg.InsertItem("LensFlar","pos_x","0");
		MapCfg.InsertItem("LensFlar","pos_y","0");
			
		//	[BillBoard]
		MapCfg.InsertItem("BillBoard","count","1000");
		MapCfg.InsertItem("BillBoard","tree1","data\\texture\\tree1.jpg");
		MapCfg.InsertItem("BillBoard","tree2","data\\texture\\tree2.jpg");
		MapCfg.InsertItem("BillBoard","tree3","data\\texture\\tree3.jpg");
		MapCfg.InsertItem("BillBoard","tree4","data\\texture\\tree4.jpg");
		MapCfg.InsertItem("BillBoard","tree5","data\\texture\\tree5.jpg");
		MapCfg.InsertItem("BillBoard","height","50");
		MapCfg.InsertItem("BillBoard","width","40");
		MapCfg.Save();
	}
	
}

void LoadAppCfg()
{
	BOOL bLoad = Configure.Load("SimNature.ini");
	if(bLoad == FALSE)
	{
		//[General]
		Configure.InsertItem("General","screen_w","640");
		Configure.InsertItem("General","screen_h","480");
		Configure.InsertItem("General","color_depth","32");
		Configure.InsertItem("General","display_fre","85");
		Configure.InsertItem("General","fullscreen","ON");
		Configure.InsertItem("General","fog","ON");
		Configure.InsertItem("General","billboard","ON");
		Configure.InsertItem("General","eye_angle","25");
		Configure.InsertItem("General","eye_h","5.2");
		Configure.InsertItem("General","step","0.325");
		
		//[LOD]
		Configure.InsertItem("LOD","space_error","27");
		Configure.InsertItem("LOD","object_error","2.5");
		Configure.InsertItem("LOD","viewdist","600");
		Configure.InsertItem("LOD","angle","70");
		
		//[Map]
		Configure.InsertItem("Map","size","2049");
		Configure.InsertItem("Map","map","data\\map\\map2048.ini");
		
		//[Fog]
		Configure.InsertItem("Fog","r","0.8");
		Configure.InsertItem("Fog","g","0.8");
		Configure.InsertItem("Fog","b","0.9");
		Configure.InsertItem("Fog","a","1.0");
		Configure.InsertItem("Fog","density","0.00350");
		Configure.InsertItem("Fog","near","890");
		Configure.InsertItem("Fog","far","1000");

		//[Blur]
        Configure.InsertItem("Blur","x","0");
		Configure.InsertItem("Blur","y","0");
		Configure.InsertItem("Blur","value","0.7");
		Configure.InsertItem("Snip","mask","data\\texture\\sniper.jpg");
		Configure.Save();
	}
}

⌨️ 快捷键说明

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