• 大小: 55.73MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2022-12-05
  • 语言: C/C++
  • 标签: opengl  

资源简介

利用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\.git\config

     文件         73  2017-11-27 21:36  minecraft_1\.git\description

     文件        108  2017-12-01 14:49  minecraft_1\.git\FETCH_HEAD

     文件         23  2017-11-27 21:36  minecraft_1\.git\HEAD

     文件        177  2017-11-27 21:36  minecraft_1\.git\hooks\README.sample

     文件       6128  2017-12-01 14:49  minecraft_1\.git\index

     文件        113  2017-11-27 21:36  minecraft_1\.git\info\exclude

     文件       1117  2017-12-01 14:49  minecraft_1\.git\logs\HEAD

     文件       1117  2017-12-01 14:49  minecraft_1\.git\logs\refs\heads\master

     文件       1052  2017-12-01 14:49  minecraft_1\.git\logs\refs\remotes\origin\master

     文件        150  2017-12-01 14:49  minecraft_1\.git\ms-persist.xml

     文件        238  2017-11-29 16:49  minecraft_1\.git\objects\00\410a767be7d07609398b3bbeaa92ae57198db0

     文件       1185  2017-11-29 16:49  minecraft_1\.git\objects\04\09d5523787357607319c7f79484d4abb8fc4b4

     文件     383015  2017-12-01 14:49  minecraft_1\.git\objects\06\a1c8f33634f2d8797355d9fa29bf297a50ded4

     文件       7356  2017-11-29 20:10  minecraft_1\.git\objects\08\84327b0431cbcf4dbd91bf68ba11cff77c70a8

     文件       1284  2017-11-29 16:49  minecraft_1\.git\objects\08\d84fb6e42bad75c409cd10792a5738077d26ad

     文件        216  2017-11-29 16:49  minecraft_1\.git\objects\11\4d2fe914fec423559f0b779c36676dcfa0ac96

     文件        198  2017-11-30 20:19  minecraft_1\.git\objects\11\a9851e4606b0c17197e10ba335380dc2f7ef7c

     文件       1043  2017-11-29 20:10  minecraft_1\.git\objects\13\4d6c7655bc276821972aacb053fbf3d23ebc6b

     文件       1453  2017-11-30 19:17  minecraft_1\.git\objects\13\c1c4cc783c560f8e0f0f1d30dc980bb78b37c6

     文件         56  2017-11-29 20:10  minecraft_1\.git\objects\13\d4d9edb113e3ff3965d353b08b5563ad4b4eb7

     文件        818  2017-11-28 17:37  minecraft_1\.git\objects\14\61fb6a36a808831a505b8589a4fc6ce15cff8c

     文件       1483  2017-11-30 20:19  minecraft_1\.git\objects\16\a3cfde13d2a5563f3ccc9d4dd99b4db9dc06ac

     文件        384  2017-11-28 17:37  minecraft_1\.git\objects\18\42e70be9b119dacc529f54b7f75ab6d20c2a30

     文件        122  2017-11-29 20:10  minecraft_1\.git\objects\18\cbd2fe5014e5b30de9c4cc07651bf4f2807182

     文件        707  2017-11-28 17:37  minecraft_1\.git\objects\1b\e6e090cf4d28e6dffd9c6dd06123e5ea8a0594

     文件       1716  2017-11-30 20:19  minecraft_1\.git\objects\1f\48593df940521e83ad81dcd349a5566fb3bc42

     文件        495  2017-11-29 16:49  minecraft_1\.git\objects\20\5e1abc4bd7c66770fe55637462c7be8343aaec

     文件        937  2017-11-28 17:37  minecraft_1\.git\objects\23\36afe74dc63305116eda3fc447e85a0a71dceb

     文件     351892  2017-12-01 14:49  minecraft_1\.git\objects\23\afbc4920aca844777b2ecf7fd932731f6caebc

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

评论

共有 条评论