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

📄 baiscobj.h

📁 碰撞检测.,用c++ opengl 实现
💻 H
字号:
// baiscobj.h: interface for the baiscobj class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BAISCOBJ_H__6F90C6A0_F5E4_4482_BA6B_136D5C922B31__INCLUDED_)
#define AFX_BAISCOBJ_H__6F90C6A0_F5E4_4482_BA6B_136D5C922B31__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct OBJPOSI	//对象的位置结构
 {	float x,z;		//位置
	float h;		//深
	float size;		//大小
	int   cactus;	//树形
 };
class baiscobj  
{
public:
	baiscobj();
	virtual ~baiscobj();
public:
//A、地
	float		g_terrain	[MAP_W*MAP_W][3];	    //地域数据
	GLuint		g_index		[MAP_W*MAP_W* 2];	    //顶点数组
	float		g_texcoord	[MAP_W*MAP_W][2];	    //索引数组
	void		InitTerrain(float h);	            //载入地域数组
	void		DrawSand();					        //显示随机山势
	float		GetHeight(float x, float z);        //取当前位置高度
//B、漫游
	float	    g_eye [3]; 	                        //视点
	float	    g_look[3];	                        //目标点
	float	    rad_xz;		                        //角度
	float	    g_Angle;	                        //方位角
	float	    g_elev;		                        //仰俯角
	BOOL		DisplayScene();	                    //摄像漫游
//C、天、其它
	UINT		g_cactus[16];	                    //贴图
	BITMAPINFOHEADER  g_bit;                        //
	unsigned char    *g_imageData;                  //
	void		CreateSkyBox(int a,int wi,int he,int le);//显示天
	void		texture(UINT textur);				//设置贴图滤波
	void		light0();                           // 环境光
//D、
	void		picter(float x,float y,float z);    //组合图形
	bool		LoadT8(char *filename, GLuint &texture); //调8位贴图
	void		LoadT16(char *filename, GLuint &texture);//调16位帖图
	unsigned char* LoadBit(char *filename, BITMAPINFOHEADER *bitmap);
//E、树
//	void		ShowTree(float x,float z,float h,float s,int cactus);//树
	void		ShowTree(int i);//
	void		ShowTree0(float x,float z,float h,float s,int cactus);//普通平面树
//F、显示3D模型
	CLoad3DS* m_3ds;
	void load3dobj(char* dir,char* cn,int a);
	void Scene(int obj,float x,float h,float z,float r,int re,float size);//显示对象
//E、爆炸射击
	CExplosion *explosion;
	bool		isExplosion;
    float       px,py,pz;                           // 爆炸位置
	void		Explosion(float x,float y,float z,int b,float a);// 爆炸初始化
	void		plosion();                          // 爆炸

	CInputSystem *	inputSys;                       // 定义鼠标接口,
	float		rocketX,rocketY,rocketZ;            // 子弹位置
	int			Expl;                               //子弹距离计数
	void		fire();                             // 射击
//G、碰撞
	OBJPOSI		objposi[TREESL];//树的位置
	void		zangan(float x,float z);//碰撞绕行
	BOOL		iftf(int i);			//判断障碍
	void		settml(int p);			//显示障碍位置、大小
	bool		Hitexamina(float x,float y,float z);// 子弹碰撞检测
};

#endif // !defined(AFX_BAISCOBJ_H__6F90C6A0_F5E4_4482_BA6B_136D5C922B31__INCLUDED_)

⌨️ 快捷键说明

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