- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2003版华容道操作步骤何 张一淇 比翼横空
华容道游戏程序操作步骤
在将GL库压缩包拷贝到该文件夹内,解压缩。OpenGL,
启动Wizard [exe],目录选择
创建菜单:选择资源卡,双击Menu下的IDR_MAINFRAME,新建菜单“游戏选关”,在该菜单下创建子菜单“比翼横空”,
单机类视图,右击New Class,名称为cell,基类选择
右击cell,
Public:
void Setpos(GLfloat x,GLfloat y); //设置坐标
void Setchessname(GLint name); //设置棋子名字
void Setcellstate(GLint state); //设置棋子状态
int Getchessname(); //获得棋子名字
int Getcellstate(); //获得棋子状态
bool DrawChess(GLuint *texture); //画棋子 bool CopyCell(cell tcell); //拷贝棋子
bool clear(); //清除棋子
7、右击cell,添加成员变量,private:
GLfloat pos_x; //棋子x坐标
GLfloat pos_y; //棋子y坐标
GLint cellstate; //棋子状态 GLint chessname; //棋子名称
GLuint texid; //棋子纹理ID
8、选择FileView,.h,在//cell window下添加 #include GL/glut.h。 9、选择View,l.cpp,在/cell message handlers下添加如下代码:
{
chessname=tcell.Getchessname();
cellstate=tcell.Getcellstate();
tcell.clear();
return true;
}
bool cell::clear()//将位置和名字置为0
{
chessname=CN_EMPTY;
cellstate=CS_EMPTY;
return true;
}
void cell::Setpos(GLfloat x,GLfloat y) //赋值位置坐标
{
pos_x=x;
pos_y=y;
}
void cell::Setchessname(GLint name) //赋值棋子名字
{
chessname=name;
}
void cell::Setcellstate(GLint state) //赋值棋子部分
{
cellstate=state;
}
int cell::Getchessname()//获得棋子名字
{
return chessname;
}
int cell::Getcellstate()//获得位置
{
return cellstate;
}
bool cell::DrawChess(GLuint *texture) //画棋子,并为每个棋子的纹理标号。
{
glPushMatrix();//把当前的矩阵数据压栈(就是保存起来)
glTranslatef(pos_x,pos_y,0.0); //沿着矩阵中X和Y的位置移动
switch (chessname)
{
case CN_CAOCAO:
glBindTexture(GL_TEXTURE_2D, texture[0]) ; //建立一个绑定到目标纹理的有名称的纹理
break;
case CN_ZHANGFEI:
switch (cellstate)
{
case CS_LEFT:
case CS_RIGHT:
glBindTexture(GL_TEXTURE_2D, texture[6]);
break;
case CS_BOTTOM:
case CS_TOP:
glBindTexture(GL_TEXTURE_2D, texture[7]);
break;
}
break;
case CN_ZHAOYUN:
switch (cellstate)
{
case CS_LEFT:
case CS_RIGHT:
glBindTexture(GL_TEXTURE_2D, texture[8]);
break;
case CS_BOTTOM:
case CS_TOP:
glBindTexture(GL_TEXTURE_2D, texture[9]);
break;
}
break;
case CN_MACHAO:
switch (cellstate)
文档评论(0)