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

📄 mdlobj.cpp

📁 碰撞检测.,用c++ opengl 实现
💻 CPP
字号:
// mdlobj.cpp: implementation of the mdlobj class.
// 学程序编游戏系列丛书
// 唐明理 E_mail: cqtmL@163.com
//====================================================================
#include "stdafx.h"
#include "mdlobj.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
////////////////////////////////////////
TMDLModel		MdlModel[2];					// MDL Model
//////////////////////////////////////////////////////////////////////////
mdlobj::mdlobj()
{	z_rot3=-90.0f;
	Animation=0;
	Models=1;
}
mdlobj::~mdlobj()
{
}
/////////////////////////////////////////////////////////////////////
void mdlobj::DrawModels(float x,float y,float z,int a,float size,float rz,float ry)
{	glPushMatrix();
	glEnable(GL_LIGHTING);              //使用贴图
	glEnable(GL_TEXTURE_2D);            //使用光照
	glTranslatef(x, y, z);
	glScalef( size, size,size);
	glRotated(-90,1.0f,0.0f,0.0f);
	glRotated(-rz+5,0.0f,0.0f,1.0f);
	glRotated(-ry*2/3-5,0.0f,1.0f,0.0f);
	static float	Previous;
	float Current	= GetTickCount( )/1000.0f;
	MdlModel[a].AdvanceFrame(Current - Previous);
	MdlModel[a].DrawModel();
	Previous	= Current;
	if(Animation<1)
		{Animation=0;
		 MdlModel[a].SetSequence(0);
		}
	if(Animation>0) Animation--;
	glPopMatrix();
}

void mdlobj::fire(int a)//射击动作转换
{	MdlModel[0].SetSequence(a);
	tagMDLSeqDescription *aa=(tagMDLSeqDescription *)((BYTE *)MdlModel[0].Header
							  + MdlModel[0].Header->SequenceOffset)+a;//取每个动作的数
	Animation=aa->NumFrames/5;

}
int mdlobj::InitGL(int a,char* na)			// All Setup For OpenGL Goes Here
{	MdlModel[a].Init(na);
	MdlModel[a].SetSequence(0);
	return TRUE;							// Initialization Went OK
}

⌨️ 快捷键说明

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