資源簡介
基于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? {?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個文件信息
- 上一篇:JZ2440使用手冊
- 下一篇:OpenGL小車三維模型源碼.zip
評論
共有 條評論