资源简介
用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++
相关资源
- vc++6.0开发的音频采集程序
- VC++ 导入excel数据
- 基于MFC的图书管理系统
- VC2017+OPENCV4.30实现机器人与传感器的手
- 箱子求解V2.0C++/MFC)
- MFC写的画图板类似Windows自带的画图
- 五子棋(棋盘)(MFC编写)
- 基于vc6开发的计算器
- 基于OpenCV和MFC的手工量测同名点程序
- mfc下导出listctrl数据到excel表格
- opelgl基于vc的mfc写的粒子烟花效果源代
- 在线考试系统VC++MFC
- VC++ 视频播放器 程序及源码
- 用mfc实现的计算器
- vc++编写的聊天程序
- mfc推箱子代码
- VC++ 网络对战五子棋游戏(服务端+用
- VC++简单多人聊天室源码
- A*算法vc++源码
- VC++数字图像处理程序设计 63讲 杨淑莹
- VC 实现窗口状态栏显示鼠标坐标信息
- VC gethostname获取计算机名和IP地址.
- VC 邮件发送客户端源码.rar
- vc6显示行号包含注册码VC6LineNumberAdd
- MSDN 和VC6.0完全版
- VC++就业培训宝典之MFC视频教程及pdf
- MFC 自适应不规则按钮类
- vc++ 编写的基于TCP协议的客户/服务器
- VC++红色画笔五边形
- 适用于MFC/VC(VC6.0版本)自绘groupbox
评论
共有 条评论