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

📄 castlescene.h

📁 Ion Team Lord Of The Rings Demo 模拟指环王的3D游戏 VS.NET编译 里面提供高级渲染算法
💻 H
📖 第 1 页 / 共 2 页
字号:
    {
	

      if (PGod[caParticleSystem[1]]->InitialParticle.InitialColor.g!=0.3f)
        {
          PGod[caParticleSystem[1]]->InitialParticle.InitialColor.r=0.8f;
          PGod[caParticleSystem[1]]->InitialParticle.InitialColor.g=0.3f;
          PGod[caParticleSystem[1]]->InitialParticle.InitialColor.b=0.1f;
          PGod[caParticleSystem[1]]->InitialParticle.FinalColor.r=0.9f;
          PGod[caParticleSystem[1]]->InitialParticle.FinalColor.g=0.3f;
          PGod[caParticleSystem[1]]->InitialParticle.FinalColor.b=0.2f;
          PGod[caParticleSystem[1]]->InitialParticle.fLifetime=15000.0f;
          PGod[caParticleSystem[1]]->InitialParticle.fFinalAlpha=1.0f;
        }
      if (TotalTime<23500.0f)
        {
          PGod[caParticleSystem[1]]->IndividualAcceleration=true;
          PGod[caParticleSystem[1]]->AccelerateTo(caKnightMovements[caKnightMovementIndex].Position+((caKnightMovements[caKnightMovementIndex+1].Position-caKnightMovements[caKnightMovementIndex].Position)*caKnightAnimationFraction));
        }
      else if (TotalTime<30000.0f)
        {
					if (!caFlags[1])
					{
						caFlags[1]=true;
						caKnight.LoadSkin("Data/ModelsAndSkins/KnightOfEvil/KnightEvil.jpg");
					}
          PGod[caParticleSystem[1]]->IndividualAcceleration=false;
        }
      else if (PGod[caParticleSystem[1]]->Enabled!=false)
        {
          PGod[caParticleSystem[1]]->Enabled=false;
        }
    }
  else
    {
      Bind(Sauron);
			glDisable(GL_LIGHTING);
      glColor4f(1.0f,1.0f,1.0f,0.6f);

      glBegin(GL_QUADS);
      glTexCoord2f(0.0f, 0.0f);
      glVertex3f( -8.5f, 2.5f,  10.0f);

      glTexCoord2f(0.0f, 1.0f);
      glVertex3f( -8.5f,  6.5f,  10.0f);

      glTexCoord2f(1.0f, 1.0f);
      glVertex3f( -8.5f,  6.5f, 2.0f);

      glTexCoord2f(1.0f, 0.0f);
      glVertex3f( -8.5f, 2.5f, 2.0f);
      glEnd();
			glEnable(GL_LIGHTING);
    }


if (TotalTime>50000.0f && TotalTime<65000.0f)
{
			glEnable(GL_TEXTURE_GEN_S);						// Enable Texture Coord Generation For S
			glEnable(GL_TEXTURE_GEN_T);						// Enable Texture Coord Generation For T
			Bind(BarrierTex);
      glEnable(GL_BLEND);
      glColor4f(1.0f,1.0f,1.0f,0.8f);

      glBegin(GL_QUADS);
      glTexCoord2f(0.0f, 0.0f);
      glVertex3f( -1.3f, -2.5f,  20.0f);

      glTexCoord2f(0.0f, 1.0f);
      glVertex3f(-1.3f,  15.5f,  20.0f);

      glTexCoord2f(1.0f, 1.0f);
      glVertex3f( -1.3f,  15.5f, -10.0f);

      glTexCoord2f(1.0f, 0.0f);
      glVertex3f( -1.3f, -2.5f, -10.0f);
      glDisable(GL_BLEND);
      glEnd();
			glDisable(GL_TEXTURE_GEN_S);						// Enable Texture Coord Generation For S
			glDisable(GL_TEXTURE_GEN_T);						// Enable Texture Coord Generation For T
}
  if (TotalTime>35000.0f && TotalTime<57000.0f)
    PGod[caParticleSystem[2]]->Enabled=true;
  else
    PGod[caParticleSystem[2]]->Enabled=false;

	if (TotalTime>93000.0f && TotalTime<113000.0f)
    PGod[caParticleSystem[6]]->Enabled=true;
  else
    PGod[caParticleSystem[6]]->Enabled=false;


  if (TotalTime>72000.0f && TotalTime<78000.0f)
    PGod[caParticleSystem[3]]->Enabled=true;
  else
    PGod[caParticleSystem[3]]->Enabled=false;

  if (TotalTime>84000.0f && TotalTime<94000.0f)
    {
			glEnable(GL_TEXTURE_GEN_S);						// Enable Texture Coord Generation For S
			glEnable(GL_TEXTURE_GEN_T);						// Enable Texture Coord Generation For T
			Bind(BarrierTex);
      glEnable(GL_BLEND);
      glColor4f(0.5f,1.0f,0.5f,0.8f);

      glBegin(GL_QUADS);

      glTexCoord2f(1.0f, 0.0f);
      glVertex3f( 12.5f, -2.5f, -10.0f);


      glTexCoord2f(1.0f, 1.0f);
      glVertex3f( 12.5f,  15.5f, -10.0f);
      glTexCoord2f(0.0f, 1.0f);
      glVertex3f(12.5f,  15.5f,  20.0f);

			      glTexCoord2f(0.0f, 0.0f);
      glVertex3f( 12.5f, -2.5f,  20.0f);
      glDisable(GL_BLEND);
      glEnd();
			glDisable(GL_TEXTURE_GEN_S);						// Enable Texture Coord Generation For S
			glDisable(GL_TEXTURE_GEN_T);						// Enable Texture Coord Generation For T
      PGod[caParticleSystem[4]]->Enabled=true;
      PGod[caParticleSystem[5]]->Enabled=true;
    }
  else
    {
      PGod[caParticleSystem[4]]->Enabled=false;
      PGod[caParticleSystem[5]]->Enabled=false;
    }

		  if (TotalTime>109000.0f && TotalTime<129000.0f)
    {
		
      PGod[caParticleSystem[7]]->Enabled=true;
      PGod[caParticleSystem[8]]->Enabled=true;
    }
  else
    {
      PGod[caParticleSystem[7]]->Enabled=false;
      PGod[caParticleSystem[8]]->Enabled=false;
    }

  if (TotalTime>55000.0f && TotalTime<58000.0f)
    {
      if (!caFlags[SAURON_POSESSES_MONSTER])
        {
          PGod[caParticleSystem[2]]->Chaos.Speed=Vector3d(0.005f,0.001f,0.005f);
          PGod[caParticleSystem[2]]->InitialParticle.fLifetime=3400.0f;
          PGod[caParticleSystem[2]]->InitialParticle.fInitialSize=1.0f;
          PGod[caParticleSystem[2]]->InitialParticle.fFinalSize=1.0f;
          PGod[caParticleSystem[2]]->IndividualAcceleration=true;
          caFlags[SAURON_POSESSES_MONSTER]=true;
        }
      PGod[caParticleSystem[2]]->AccelerateTo(caKnightMovements[caKnightMovementIndex].Position+((caKnightMovements[caKnightMovementIndex+1].Position-caKnightMovements[caKnightMovementIndex].Position)*caKnightAnimationFraction));
    }
  else if (caFlags[SAURON_POSESSES_MONSTER])
    {
      PGod[caParticleSystem[2]]->IndividualAcceleration=true;
      caFlags[SAURON_POSESSES_MONSTER]=false;
    }


  PGod.Draw();

		if (TotalTime>10000.0f && TotalTime<15000.0f)
	{
		glLoadIdentity();
		glDisable(GL_LIGHTING);
		glDisable(GL_CULL_FACE);
		glDisable(GL_DEPTH_TEST);
		Standart.Display(" Forced to evil by the power of The Ring,  ",1.0f,20,40,1);
		Standart.Display(" Gandalf Wen't to Mordor to usurp Sauron!  ",1.0f,20,20,1);
		glEnable(GL_LIGHTING);
		glEnable(GL_CULL_FACE);
		glEnable(GL_DEPTH_TEST);
		
	}


	if (TotalTime>68000.0f && TotalTime<90000.0f)
	{
		glLoadIdentity();
		glDisable(GL_LIGHTING);
		glDisable(GL_CULL_FACE);
		glDisable(GL_DEPTH_TEST);
		Standart.Display(" * GOSTO MUITO DE MEL QUERO MUDAR ALIMENTACAO * ",1.0f,20,40,1);
		glEnable(GL_LIGHTING);
		glEnable(GL_CULL_FACE);
		glEnable(GL_DEPTH_TEST);
	}
		if (TotalTime>93000.0f && TotalTime<103000.0f)
	{
		glLoadIdentity();
		glDisable(GL_LIGHTING);
		glDisable(GL_CULL_FACE);
		glDisable(GL_DEPTH_TEST);
		Standart.Display(" * ARCH BAELETH NOSTRASTOM SINFLA DOST! * ",1.0f,20,40,1);
		glEnable(GL_LIGHTING);
		glEnable(GL_CULL_FACE);
		glEnable(GL_DEPTH_TEST);
	}

	if (TotalTime>117500.0f)
	{
		Fade(1,1,1,(TotalTime-117500.0f)*0.001f);
	}
}


void CastleSceneDeInit ()
{
	caMap.Destroy();
}

⌨️ 快捷键说明

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