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

📄 staticobj.cpp

📁 《OpenGL游戏编程》这本书的配套源码。
💻 CPP
字号:
//========================================================
/**
*  @file      StaticObj.cpp
*
*  项目描述: 构造游戏引擎
*  文件描述:  游戏中的静态实体
*  适用平台: Windows98/2000/NT/XP
*  
*  作者:     WWBOSS
*  电子邮件:  wwboss123@gmail.com
*  创建日期: 2007-07-26	
*  修改日期: 2007-07-26
*
*/ 
//========================================================

#include "stdafx.h"
#include "staticobj.h"
#include "inifile.h"
#include "terrain.h"

StaticObj::StaticObj(void):m_fDir(0.f),
						m_bSelected(FALSE)
{
}

StaticObj::~StaticObj(void)
{
}


BOOL StaticObj::LoadIni(char* filename,char* index)
{
	CIniFile Ini(filename);
	m_sPos.x=(float)Ini.ReadInt(index,"x");
	m_sPos.z=(float)Ini.ReadInt(index,"y");
	m_sPos.y=CTerrain::GetSysTerrain()->GetHeight(m_sPos.x,m_sPos.z);
	m_fDir=(float)Ini.ReadInt(index,"direction");
	vector3d t_v;
	t_v.x=PERSENT(Ini.ReadInt(index,"scale_x"));
	t_v.y=PERSENT(Ini.ReadInt(index,"scale_y"));
	t_v.z=PERSENT(Ini.ReadInt(index,"scale_z"));
	r1=PERSENT(Ini.ReadInt(index,"r1"));
	r2=PERSENT(Ini.ReadInt(index,"r2"));
	ms3d.Load(Ini.ReadText(index,"ModelFile"),t_v);
	ms3d.LoadTexFromIni(filename,index);


	return TRUE;
}


void StaticObj::OnRender()
{
	glPushMatrix();
	glTranslatef(m_sPos.x ,m_sPos.y , m_sPos.z);
	glRotatef(m_fDir , 0.0f , 1.0f , 0.0f);
	if(m_bSelected)
	{
		glColor3f(1.f,0.f,0.f);
		glBegin(GL_LINE_LOOP);
			glVertex3f(-r1,2,-r2);
			glVertex3f(-r1,2, r2);
			glVertex3f( r1,2, r2);
			glVertex3f( r1,2,-r2);
		glEnd();
	}
	ms3d.Render();
	glPopMatrix();
}

⌨️ 快捷键说明

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