• 大小: 5.71MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-12
  • 语言: 其他
  • 标签: opengl  VC  漫游  

资源简介

基于opengl VC 实现的3D漫游,内附有注释,适合新手学习

资源截图

代码片段和文件信息

// GLFont.cpp: implementation of the CGLFont class.
//程序设计:唐明理 2005.2
//E_mail cqtml@163.com
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“

#include “GLFont.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
//unsigned int base;
//////////////////////////////////////////////////////////////////////

CGLFont::CGLFont()
{
}
CGLFont::~CGLFont()
{
}
void CGLFont::entext( float xfloat y LPCTSTR str HFONT hFont
  float r float g float b) 
{  HDC hdc = wglGetCurrentDC();  
Selectobject(hdc hFont); 
unsigned int base = glGenLists(96);
wglUseFontBitmaps(hdc 32 96base);
glDisable(GL_TEXTURE_2D); 
glDisable(GL_LIGHTING); 
glPushAttrib(GL_LIST_BIT);  
glColor3f(rgb);
glRasterPos2f(x/100 y/100); 
glListbase(base - 32); 
glCallLists(strlen(str) GL_UNSIGNED_BYTE str); 
glPopAttrib(); 
glEnable(GL_LIGHTING); 
glEnable(GL_TEXTURE_2D); 
glDeleteLists(base 96); 
}

//////////////////////////////////////////////////////////////////
void CGLFont::c3dtext(LPCTSTR strHFONT hFontfloat z)
{ glDisable(GL_TEXTURE_2D); 
glDisable(GL_LIGHTING);
Printfc3d(“立体汉字“hFontz);
glEnable(GL_LIGHTING);   
glEnable(GL_TEXTURE_2D);
}
void CGLFont::Printfc3d(CString strTextHFONT hFontfloat z)
{ HDC hdc = wglGetCurrentDC();
HFONT hOldFont=(HFONT)::Selectobject(hdchFont);
UCHAR * pChar=(UCHAR*)strText.GetBuffer(strText.GetLength());
int   nListNum;  
DWORD dwChar;  
GLYPHMETRICSFLOAT pgmf[1]; 
glPushMatrix();   
for(int i = 0; i < strText.GetLength(); i++)
{ if(IsDBCSLeadByte((BYTE)pChar[i]))
{ dwChar=(DWORD)((pChar[i]<<8)|pChar[i+1]);
  i++;
}
  else dwChar = pChar[i];
  nListNum = glGenLists(1);  
  wglUseFontOutlines( hdc
  dwChar
  1
  nListNum
  0.0f 
  z
  WGL_FONT_POLYGONS
  pgmf
);
  glCallList(nListNum);  
  glDeleteLists(nListNum 1);   
}
glPopMatrix();    
strText.ReleaseBuffer();
::Selectobject(hdchOldFont); 
}
////////////////////////////////////////////////////////////////////////
void CGLFont:: settext (float xfloat yCString strHFONT Fontfloat rfloat gfloat b)
  
{   glLoadIdentity();
glPushAttrib(GL_CURRENT_BIT);
glDisable(GL_TEXTURE_2D); 
glDisable(GL_LIGHTING); 
glColor3f(rgb);  
  glTranslatef(-(420-x)/800(260-y)/600-1.0f);
  Printftext (00 strFont);    
glEnable(GL_LIGHTING);     
glEnable(GL_TEXTURE_2D);
glPopAttrib();
}
void CGLFont:: Printftext (int x int y LPCTSTR lpszTextHFONT hFont)
{ CBitmap bitmap;
  BITMAP bm;
  SIZE size; 
  HDC MDC = ::CreateCompatibleDC(0);
  Selectobject(MDChFont);
  ::GetTextExtentPoint32(MDClpszTextstrlen(lpszText)&size);
  bitmap.CreateBitmap(size.cx size.cy 1 1 NULL);
  HBITMAP oldBmp=(HBITMAP)Selectobject(MDC

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14137  2007-06-04 21:08  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\BAISCOBJ.CPP

     文件       1944  2007-06-04 20:14  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\BAISCOBJ.H

     文件       4008  2005-04-10 00:08  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\GLFont.cpp

     文件        779  2005-04-09 17:07  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\GLFont.h

     文件       5226  2007-06-04 21:20  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\OpenGL.cpp

     文件        889  2007-06-04 21:06  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\OpenGL.h

     文件       1233  2005-03-28 21:08  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\ReadMe.txt

     文件        297  2005-03-28 21:08  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\StdAfx.cpp

     文件       1598  2005-04-03 11:30  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\StdAfx.h

     文件        545  2005-03-28 21:08  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\test.dsw

     文件      58368  2007-06-04 20:01  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\test.ncb

     文件      53760  2007-06-04 20:01  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\test.opt

     文件       4216  2007-05-19 11:41  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.cpp

     文件       4551  2005-04-03 11:50  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.dsp

     文件        545  2005-03-28 21:08  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.dsw

     文件     148480  2009-08-03 10:03  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.ncb

     文件      56832  2009-08-03 10:03  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.opt

     文件       2149  2009-08-03 09:57  虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.plg

     文件      19711  2005-03-26 18:56  虚拟环境漫游系统\虚拟环境漫游系统\include\3DS.CPP

     文件       3849  2005-03-26 18:56  虚拟环境漫游系统\虚拟环境漫游系统\include\3DS.H

     文件       6051  1999-02-23 18:46  虚拟环境漫游系统\虚拟环境漫游系统\include\anorms.h

     文件       3662  2005-01-16 00:33  虚拟环境漫游系统\虚拟环境漫游系统\include\bitmap.h

     文件       4921  2005-04-03 23:07  虚拟环境漫游系统\虚拟环境漫游系统\include\explosion.cpp

     文件       1365  2005-03-10 23:32  虚拟环境漫游系统\虚拟环境漫游系统\include\explosion.h

     文件       3820  2004-09-02 01:01  虚拟环境漫游系统\虚拟环境漫游系统\include\InputSystem.cpp

     文件       2393  2002-03-14 08:24  虚拟环境漫游系统\虚拟环境漫游系统\include\InputSystem.h

     文件      24900  2005-01-17 14:18  虚拟环境漫游系统\虚拟环境漫游系统\include\md2.cpp

     文件       3037  2000-10-15 16:22  虚拟环境漫游系统\虚拟环境漫游系统\include\md2.h

     文件       2804  2005-01-05 22:22  虚拟环境漫游系统\虚拟环境漫游系统\include\Particles.cpp

     文件       2263  2005-01-16 14:44  虚拟环境漫游系统\虚拟环境漫游系统\include\Particles.h

............此处省略269个文件信息

评论

共有 条评论