openGL_c++复刻我的世界游戏


利用openGL与c++复刻我的世界游戏 具体情况请移步 https://blog.csdn.net/github_38838414/article/details/80010265
资源截图
代码片段和文件信息
#include “Camera.h“

void Camera::setting_view_person(Man & man)
{
if (view_person == FIRST_PERSON)
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
cameraAt.x = man.x + 1.3 * cos(man.vangle / 180.0 * PI);
cameraAt.y = man.y + man.head.y;
cameraAt.z = man.z - 1.3 * sin(man.vangle / 180.0 * PI);

lookAt.x = man.x + 5 * cos(man.vangle / 180.0 * PI);
lookAt.y = man.y + man.hair.y - look_dy;
lookAt.z = man.z - 5 * sin(man.vangle / 180.0 * PI);
gluLookAt(cameraAt.x cameraAt.y cameraAt.z
lookAt.x lookAt.y lookAt.z
0.0f 1.0f 0.0f);
}
else if (view_person == GOD)
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
if (!reset_god)
{
cameraAt = godAt;
lookAt.x = 10;
lookAt.y = 0;
lookAt.z = 0;
reset_god = true;
}

gluLookAt(cameraAt.x cameraAt.y cameraAt.z
lookAt.x lookAt.y lookAt.z
0.0f 1.0f 0.0f);
}
else if (view_person == THIRD_PERSON)
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
cameraAt.x = man.x - 10 * cos(man.vangle / 180.0 * PI);
cameraAt.y = man.head.y + 10;
cameraAt.z = man.z + 10 * sin(man.vangle / 180.0 * PI);

lookAt.x = man.x;
lookAt.y = man.hair.y;
lookAt.z = man.z;

gluLookAt(cameraAt.x cameraAt.y cameraAt.z
lookAt.x lookAt.y lookAt.z
0.0f 1.0f 0.0f);
}
else if (view_person == BALL)
{
if (trackballMove)
{
glRotatef(angle axis[0] axis[1] axis[2]);
}
}
}

void Camera::change_view()
{
reset_god = false;
if (view_person >= 3)
{
view_person = 0;
}
else
{
view_person++;
}
}

void Camera::unname(int x int y int scr_wMan &man)
{
float r = 0.06;
man.vangle -= 0.1 * (x - last_mm_x);

if (x < r * scr_w && last_mm_x > x)
{
x = (1 - r) * scr_w;
//        SetCursorPos(x y);
}
else if (x > (1 - r) * scr_w && last_mm_x < x)
{
x = r * scr_w;
//        SetCursorPos(x y);
}
if (view_person == FIRST_PERSON)
{
look_dy += 0.01 * (y - last_mm_y);
}
last_mm_x = x;
last_mm_y = y;
}

void Camera::mouse_Button(int button int state int x int yint scr_h)
{
this->scr_h = scr_h;
if (button == GLUT_LEFT_BUTTON)
{
switch (state)
{
case GLUT_DOWN:
if (view_person == FIRST_PERSON)
{
UnProject(x y GLUT_LEFT_BUTTON);
}
cameraAt.x /= VIEW_SCALE;
cameraAt.y /= VIEW_SCALE;
cameraAt.z /= VIEW_SCALE;
startMotion(x y);
break;
case GLUT_UP:
stopMotion(x y);
break;

}
}
else if (button == GLUT_RIGHT_BUTTON)
{
// 视角收缩
if (state == GLUT_DOWN)
{
if (view_person == FIRST_PERSON)
{
UnProject(x y GLUT_RIGHT_BUTTON);
}
cameraAt.x *= VIEW_SCALE;
cameraAt.y *= VIEW_SCALE;
cameraAt.z *= VIEW_SCALE;
}
}
}

void Camera::UnProject(float mouse_x float mouse_y int c)
{
int x = mouse_x;                /* 屏幕坐标 */
int y = mouse_y;
GLint viewport[4];
GLdouble mvmatrix[16] projmatrix[16];
GLfloat winx wi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        352  2017-11-27 21:36  minecraft_1.gitconfig

     文件         73  2017-11-27 21:36  minecraft_1.gitdescription

     文件        108  2017-12-01 14:49  minecraft_1.gitFETCH_HEAD

     文件         23  2017-11-27 21:36  minecraft_1.gitHEAD

     文件        177  2017-11-27 21:36  minecraft_1.githooksREADME.sample

     文件       6128  2017-12-01 14:49  minecraft_1.gitindex

     文件        113  2017-11-27 21:36  minecraft_1.gitinfoexclude

     文件       1117  2017-12-01 14:49  minecraft_1.gitlogsHEAD

     文件       1117  2017-12-01 14:49  minecraft_1.gitlogs
efsheadsmaster

     文件       1052  2017-12-01 14:49  minecraft_1.gitlogs
efs
emotesoriginmaster

     文件        150  2017-12-01 14:49  minecraft_1.gitms-persist.xml

     文件        238  2017-11-29 16:49  minecraft_1.gitobjects0410a767be7d07609398b3bbeaa92ae57198db0

     文件       1185  2017-11-29 16:49  minecraft_1.gitobjects49d5523787357607319c7f79484d4abb8fc4b4

     文件     383015  2017-12-01 14:49  minecraft_1.gitobjects6a1c8f33634f2d8797355d9fa29bf297a50ded4

     文件       7356  2017-11-29 20:10  minecraft_1.gitobjects884327b0431cbcf4dbd91bf68ba11cff77c70a8

     文件       1284  2017-11-29 16:49  minecraft_1.gitobjects8d84fb6e42bad75c409cd10792a5738077d26ad

     文件        216  2017-11-29 16:49  minecraft_1.gitobjects114d2fe914fec423559f0b779c36676dcfa0ac96

     文件        198  2017-11-30 20:19  minecraft_1.gitobjects11a9851e4606b0c17197e10ba335380dc2f7ef7c

     文件       1043  2017-11-29 20:10  minecraft_1.gitobjects134d6c7655bc276821972aacb053fbf3d23ebc6b

     文件       1453  2017-11-30 19:17  minecraft_1.gitobjects13c1c4cc783c560f8e0f0f1d30dc980bb78b37c6

     文件         56  2017-11-29 20:10  minecraft_1.gitobjects13d4d9edb113e3ff3965d353b08b5563ad4b4eb7

     文件        818  2017-11-28 17:37  minecraft_1.gitobjects1461fb6a36a808831a505b8589a4fc6ce15cff8c

     文件       1483  2017-11-30 20:19  minecraft_1.gitobjects16a3cfde13d2a5563f3ccc9d4dd99b4db9dc06ac

     文件        384  2017-11-28 17:37  minecraft_1.gitobjects1842e70be9b119dacc529f54b7f75ab6d20c2a30

     文件        122  2017-11-29 20:10  minecraft_1.gitobjects18cbd2fe5014e5b30de9c4cc07651bf4f2807182

     文件        707  2017-11-28 17:37  minecraft_1.gitobjects1be6e090cf4d28e6dffd9c6dd06123e5ea8a0594

     文件       1716  2017-11-30 20:19  minecraft_1.gitobjects1f48593df940521e83ad81dcd349a5566fb3bc42

     文件        495  2017-11-29 16:49  minecraft_1.gitobjects205e1abc4bd7c66770fe55637462c7be8343aaec

     文件        937  2017-11-28 17:37  minecraft_1.gitobjects2336afe74dc63305116eda3fc447e85a0a71dceb

     文件     351892  2017-12-01 14:49  minecraft_1.gitobjects23afbc4920aca844777b2ecf7fd932731f6caebc

............此处省略556个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)