• 大小: 978KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: C/C++
  • 标签: Opengl  MFC  vc  魔方  

资源简介

用MFC OpenGL开发的生活中的魔方游戏,支持转动,贴图。想学习vc/mfc中opengl的可以下载下来看看。非常感谢支持。请提出宝贵意见。

资源截图

代码片段和文件信息

#include“stdafx.h“
#include“bsipic.h“
#include“uv.h“
//#include“afx.h“


bsipic::bsipic()
{
length = 12.0;//默认长度
num    = 3;//默认方格数

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;
//执行初始绘制函数
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);//此代码只执行一次,后面会再随机中调用,不在此
cube[i*9+j*3+k].SetTexture(i*9+j*3+k);
}
First = false;
RotateNum  = 0;//成功拼接所旋转的次数
}
//默认魔方边长为9,共分3*3*3个积木
//将魔方对象画在第一象限内
//front face the above line left one
//围绕立方体自身的z轴旋转的情况

for(m=0; m<27; m++)
cube[m].MarkSetSelname();
for(i = 0; i < num; i++)
{
if(RenderMode == GL_SELECT)
glLoadName(i);
for(j = 0; j < num; j++)
{
if(RenderMode == GL_SELECT)
glPushName(j);
for(k = 0; k < num; 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个文件信息

评论

共有 条评论