91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-07
  • 語言: 其他
  • 標簽: 3D五指棋??Opengl??

資源簡介

opengl開發的一個3D五指棋游戲,源碼注釋詳細

資源截圖

代碼片段和文件信息

#include?		//?為了使用c的輸出函數
#include?
#include? //?為了使用strlen

//?以下全局變量用于控制動畫的狀態和速度
float?RotateAngle?=?0.0f; //?繞y軸旋轉的角度
float?Azimuth?=?45.0; //?繞x軸旋轉的角度,初始45度

float?AngleStepSize?=?3.0f; //?角度變化間隔(3度)
const?float?AngleStepMax?=?10.0f;
const?float?AngleStepMin?=?0.1f;

int?WireframeOn?=?0; //?當等于1時為線框模式

//用以處理“普通”按鍵事件
void?myKeyboardFunc(?unsigned?char?key?int?x?int?y?)
{
switch?(?key?)?{
case?‘w‘:
WireframeOn?=?1-WireframeOn;
if?(?WireframeOn?)?{
glPolygonMode?(?GL_FRONT_AND_BACK?GL_LINE?); //?僅顯示線框
}
else?{
glPolygonMode?(?GL_FRONT_AND_BACK?GL_FILL?); //?顯示實心多邊形
}
glutPostRedisplay();
break;
case?‘R‘:
AngleStepSize?*=?1.5;
if?(AngleStepSize>AngleStepMax?)?{
AngleStepSize?=?AngleStepMax;
}
break;
case?‘r‘:
AngleStepSize?/=?1.5;
if?(AngleStepSize AngleStepSize?=?AngleStepMin;
}
break;
case?27: //?Esc?鍵
exit(1);
}
}

//用于處理“特殊”按鍵事件
void?mySpecialKeyFunc(?int?key?int?x?int?y?)
{
switch?(?key?)?{
case?GLUT_KEY_UP:
Azimuth?+=?AngleStepSize;
if?(?Azimuth?>?80.0f?)?{
Azimuth?=?80.0f;
}
break;
case?GLUT_KEY_DOWN:
Azimuth?-=?AngleStepSize;
if?(?Azimuth? Azimuth?=?30.0f;
}
break;
case?GLUT_KEY_LEFT:
RotateAngle?+=?AngleStepSize;
if?(?RotateAngle?>?180.0f?)?{
RotateAngle?-=?360.0f;
}
break;
case?GLUT_KEY_RIGHT:
RotateAngle?-=?AngleStepSize;
if?(?RotateAngle? RotateAngle?+=?360.0f;
}
break;
}
glutPostRedisplay();

}

void?drawScene(void)
{
//?清除渲染窗口內容
????glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);

glMatrixMode(?GL_MODELVIEW?); //?當前矩陣影響物體的位置
glLoadIdentity(); //?初始化為恒等矩陣
glTranslatef(?0.0?0.0?-70.0?); //?從原點平移(原點在觀察者前方)
glRotatef(?RotateAngle?0.0?1.0?0.0?); //?繞y軸旋轉)
glRotatef(?Azimuth?1.0?0.0?0.0?); //?設置方位角度(繞x軸旋轉角度)

//?顯示繪制管線內容,交換緩存
????glutSwapBuffers();
}

//?初始化OpenGL的一些屬性
void?initRendering()
{
????glEnable(?GL_DEPTH_TEST?); //?深度檢測必須打開

glCullFace(?GL_BACK?); //?這兩行代碼將導致背面不會顯示
glEnable(?GL_CULL_FACE?);

glClearColor(0.5?0.5?0.5?1.0); //?背景色設為灰色

}

//?當窗口大小改變時調用
//?wh?-?窗口的寬度和高度(以像素為單位)
void?resizeWindow(int?w?int?h)
{
GLdouble?aspectRatio?=?(double)w?/?(double)h; //?新的寬高比
//?定義窗口中用于OpenGL渲染的部分
glViewport(?0?0?w?h?); //?視口使用整個窗口

//?設置投影觀察矩陣:透視投影
//?這種處理方法的缺點是窗口的寬高比可能與我們希望觀察到的場景的寬高比可能不同
h?=?(h==0)???1?:?h; //?防止除0
//?設置觀察條件
????glMatrixMode(?GL_PROJECTION?);
????glLoadIdentity();
????gluPerspective(15.0?aspectRatio?15.0?100.0?);
}


int?main(?int?argc?char**?argv?)
{
glutInit(&argc?argv);

//?我們準備使用動畫,所有采用雙緩存
????glutInitDisplayMode(GLUT_DOUBLE?|?GLUT_RGB?|?GLUT_DEPTH?);

//?窗口位置(相對于左上角),窗口尺寸(寬度和高度)
????glutInitWindowPosition(?10?60?);
????glutInitWindowSize(?360?360?);
????glutCreateWindow(?“五子棋“?);

//?初始化OpenGL
????initRendering();

//?設置用于處理鍵盤按鍵的回

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3952??2011-04-01?12:03??五子棋\gobang.cpp

?????文件???????3401??2011-04-01?11:46??五子棋\gobang.dsp

?????文件????????537??2011-04-01?11:47??五子棋\gobang.dsw

?????目錄??????????0??2011-04-01?12:05??五子棋

-----------?---------??----------?-----??----

?????????????????7890????????????????????4


評論

共有 條評論