資源簡介
用MFC OpenGL開發(fā)的生活中的魔方游戲,支持轉(zhuǎn)動,貼圖。想學(xué)習(xí)vc/mfc中opengl的可以下載下來看看。非常感謝支持。請?zhí)岢鰧氋F意見。

代碼片段和文件信息
#include“stdafx.h“
#include“bsipic.h“
#include“uv.h“
//#include“afx.h“
bsipic::bsipic()
{
length?=?12.0;//默認(rèn)長度
num????=?3;//默認(rèn)方格數(shù)
tagSelect?=?false;
Seli?=?-1; Selj?=?-1; Selk?=?-1;
memset(RotateX?0?sizeof(RotateX));
memset(RotateY?0?sizeof(RotateY));
memset(RotateZ?0?sizeof(RotateZ));
for(i?=?0;?i?27;?i++)
{
cube[i].SetWidth(4.0);
cube[i].SetIndex(i);
}
memset(g_Texture?0?sizeof(g_Texture));
First?=?true;
RotateNum?=?0;
}
bsipic::~bsipic()
{
}
void?bsipic::CubicBody(DWORD?RenderMode)//畫魔方立方體
{
GLuint?i?j?k?m;
GLfloat?step?=?length/(GLfloat)num;
//執(zhí)行初始繪制函數(shù)
if(First)
{
for(m=0;?m<27;?m++)
cube[m].MarkSetRealname();
for(i=0;i for(j=0;j for(k=0;k cube[i*9+j*3+k].SetRealandSelName(ijk);//此代碼只執(zhí)行一次,后面會再隨機(jī)中調(diào)用,不在此
cube[i*9+j*3+k].SetTexture(i*9+j*3+k);
}
First?=?false;
RotateNum??=?0;//成功拼接所旋轉(zhuǎn)的次數(shù)
}
//默認(rèn)魔方邊長為9,共分3*3*3個積木
//將魔方對象畫在第一象限內(nèi)
//front?face?the?above?line?left?one
//圍繞立方體自身的z軸旋轉(zhuǎn)的情況
for(m=0;?m<27;?m++)
cube[m].MarkSetSelname();
for(i?=?0;?i? {
if(RenderMode?==?GL_SELECT)
glLoadName(i);
for(j?=?0;?j? {
if(RenderMode?==?GL_SELECT)
glPushName(j);
for(k?=?0;?k? {
if(RenderMode?==?GL_SELECT)
glPushName(k);
glPushMatrix();
for(m=0;?m<27;m++)
if(cube[m].CompareSelname(ijk))
break;
cube[m].OnDraw(g_Texture);
// cube[m].DrawSquare(g_Texture?0);
glPopMatrix();
if(RenderMode?==?GL_SELECT)
glPopName();
}
if(RenderMode?==?GL_SELECT)
glPopName();
}
}
}
void?bsipic::DealRotateY_R(GLuint?j)
{
GLuint?i?km;
CUV?temp1?temp2?temp0?temp3;
for(m=0;?m<27;?m++)
cube[m].MarkSetSelname();
for(i=0;i<3;i++)
for(k=0;k<3;k++)
{
if(i==0&&k==0){
for(m=0;?m<27;m++){
if(cube[m].CompareSelname(2j0))
break;
}
cube[m].fTex[0].textureId?=?cube[m].fTex[3].textureId;
cube[m].fTex[0].pt[0]?=?cube[m].fTex[3].pt[0];
cube[m].fTex[0].pt[1]?=?cube[m].fTex[3].pt[1];
cube[m].fTex[0].pt[2]?=?cube[m].fTex[3].pt[2];
cube[m].fTex[0].pt[3]?=?cube[m].fTex[3].pt[3];?
cube[m].fTex[3].textureId?=?cube[m].fTex[2].textureId;
cube[m].fTex[3].pt[0]?=?cube[m].fTex[2].pt[0];
cube[m].fTex[3].pt[1]?=?cube[m].fTex[2].pt[1];
cube[m].fTex[3].pt[2]?=?cube[m].fTex[2].pt[2];
cube[m].fTex[3].pt[3]?=?cube[m].fTex[2].pt[3];
cube[m].fTex[2].textureId?=?-1;
cube[m].SetSelName(ijk);
}else?if(i==0&&k==1){
for(m=0;?m<27;m++){
if(cube[m].CompareSelname(1j0))
break;
}
cube[m].fTex[0].textureId?=?cube[m].fTex[3].textureId;
cube[m].fTex[0].pt[0]?=?cube[m].fTex[3].pt[0];?
cube[m].fTex[0].pt[1]?=?cube[m].fTex[3].pt[1];??
cube[m].fTex[0].pt[2]?=?cube[m].fTex[3].pt[2];?
cube[m].fTex[0].pt[3]?=?cube[m].fTex[3].pt[3];?
cube[m].fTex[3].textureId??=?-1;
cube[
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????40018??2008-03-24?19:30??魔方\bsipic.cpp
?????文件???????1192??2006-11-09?14:53??魔方\bsipic.h
?????文件??????22482??2008-03-24?19:09??魔方\Cube.cpp
?????文件???????1545??2006-11-09?14:23??魔方\Cube.h
?????文件????????611??2008-04-08?10:22??魔方\DrawData.txt
?????文件??????10599??2008-03-01?17:15??魔方\FaceView.cpp
?????文件???????1943??2006-11-09?18:39??魔方\FaceView.h
?????文件??????10463??2007-08-07?14:03??魔方\File.cpp
?????文件???????2283??2007-06-22?16:00??魔方\File.h
?????文件???????3515??2008-03-02?10:41??魔方\MainFrm.cpp
?????文件???????1762??2006-11-08?22:09??魔方\MainFrm.h
?????文件????????871??2006-11-09?09:49??魔方\MySplitter.cpp
?????文件????????310??2006-11-09?09:49??魔方\MySplitter.h
?????文件??????28368??2008-02-24?12:59??魔方\OpenGL3D.aps
?????文件???????2297??2008-04-08?10:22??魔方\OpenGL3D.clw
?????文件???????4284??2006-11-08?22:16??魔方\OpenGL3D.cpp
?????文件???????5341??2008-03-02?19:41??魔方\OpenGL3D.dsp
?????文件????????539??2006-08-28?19:40??魔方\OpenGL3D.dsw
?????文件???????1378??2006-08-28?19:40??魔方\OpenGL3D.h
?????文件?????263168??2008-04-08?10:22??魔方\OpenGL3D.ncb
?????文件?????136704??2008-04-08?10:22??魔方\OpenGL3D.opt
?????文件???????1242??2008-04-08?10:22??魔方\OpenGL3D.plg
?????文件??????10810??2006-11-08?22:02??魔方\OpenGL3D.rc
?????文件???????3789??2007-01-24?10:22??魔方\OpenGL3DDoc.cpp
?????文件???????1529??2006-11-09?15:52??魔方\OpenGL3DDoc.h
?????文件??????24451??2008-03-24?22:31??魔方\OpenGL3DView.cpp
?????文件???????3274??2006-11-09?18:25??魔方\OpenGL3DView.h
?????文件??????????0??2008-04-08?10:22??魔方\out.txt
?????文件???????4359??2006-08-28?19:40??魔方\ReadMe.txt
?????文件???????1078??2006-08-28?19:40??魔方\res\OpenGL3D.ico
............此處省略26個文件信息
評論
共有 條評論