资源简介
用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个文件信息
- 上一篇:SAR成像cs算法C++仿真
- 下一篇:电子商务系统-超市电商系统-C++
相关资源
- 基于mfc的多线程文件传输
- VC++ 多线程文件读写操作
- 移木块游戏,可以自编自玩,vc6.0编写
- MFC数字钟(基于VC6.0)
- 安科瑞智能电能表MODBUS通讯程序 VC6
- VC++MFC小游戏实例教程(实例)+MFC类库
- VC6LineNumberAddin.dll
- 用VC6.0实现多边形扫描线填充算法
- VC++实现CMD命令执行与获得返回信息
- VC助手 VC6.0助手
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- 安卓c语言开发SDL2+opengles
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- 基于VC++的SolidWorks二次开发SolidWorks
- VC6 USB开发源码
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- VC操作SQLSERVER数据库
- aes加解密(vc源程序)
- vc_串口通讯
- 吕鑫vc6c++数据结构视频源码
- 派克变换VC++源码(附文档)
评论
共有 条评论