钻石棋操作步骤.doc
文本预览下载声明
钻石棋游戏操作步骤
钻石棋游戏是用OpenGL来编写的,在编程之前需要搭建环境,环境搭建方法见《Opengl环境搭建.doc》,环境搭建好之后,就可以开始编程了。以下是操作过程:
一、在D盘新建文件夹命名Game,打开VS2005,选择“文件”——》“新建”——“项目”,新建一个win32控制台应用程序,工程名:JumpBall,如下图:
点击“确定”后,进入如下页面,
点“下一步”,选择“空项目”,点击“完成”,工程建毕。如下图
二、工程建好后,进入VS编程首页,点击左边工作空间的“类视图”标签,进入类视图工作空间,如下图:
钻石棋游戏一共有三个类,分别为Button类(按钮类),Cell类(棋盘格类),Chess类(棋子类),类的添加方法如下:右击工程名JumpBall——》添加——》类,出现如下界面:
在左边“类别”栏中选择C++,“模板”栏中选择C++类,然后点“添加”,进入如下界面:
输入类名(.h文件和.cpp文件会自动添加),选择访问属性为public,然后单击“完成”,类的添加完毕,然后再右边编辑区输入如下代码,Button类添加完毕。
Chess类和Cell类的添加方法同上,各个类的代码如下:
Button类:
#pragma once
#include 3ds.h
#include glut.h
class Button
{
public:
Button(void);
~Button(void);
char * textureFile;
bool isValid;
bool LoadTexFile();
void drawModel();
bool isClicked;
void setPos(float i,float j);
GLuint texid;
private:
data3ds_t model;
float pos_x,pos_y;
};
Cell类:
#pragma once
#include Chess.h
class Cell
{
public:
Cell(void);
~Cell(void);
private:
float length;
float x,y;
int chessType;
int i_index,j_index;
public:
void DrawCell();
void SetPosition(float xx,float yy);
void SetIndex(float ii,float jj);
void SetValue(int vv);
void DrawChesses();
int value;
int drawMode;
};
Chess类:
#pragma once
#include 3ds.h
#include def.h
class Chess
{
public:
Chess(void);
~Chess(void);
bool LoadFrom3ds();
void drawModel();
//static float angle_y;
char * filename;
bool selected;
private:
data3ds_t model;
};
建好类后,会在工作空间的“解决方案资源管理器”标签中自动生成相应的.cpp文件,双击Button.cpp文件,在编辑区添加如下代码:
#include Button.h
#include Chess.h
#define TEXSIZE_W 128
#define TEXSIZE_L 64
GLubyte image1[TEXSIZE_W][TEXSIZE_L][3];
Button::Button(void)
{
}
Button::~Button(void)
{
}
bool Button::LoadTexFile()//加载棋盘纹理
{
FILE *myf;
if(!(myf=fopen(textureFile,rb)))
{
return false;
}
else
{
fseek(myf,54,SEEK_SET);
}
fread(image1,sizeof(unsigned char),TEXSIZE_W*TEXSIZE_L*3,myf);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texid);
glTexImage2D(GL_TEXTURE_2D,0,3,TEXSIZE_W,TEXSIZE_L,0,
GL_BGR_EXT,GL_UNSIGNED_B
显示全部