CPP/计算机组成原理实验代码/raylib_test.cpp

61 lines
1.4 KiB
C++
Raw Normal View History

2023-05-12 00:34:15 +08:00
#include <raylib.h>
#include <math.h>
int main(void) {
// 初始化
const int screenWidth = 640;
const int screenHeight = 480;
//启用反锯齿
SetConfigFlags(FLAG_MSAA_4X_HINT);
//初始化窗口
InitWindow(screenWidth, screenHeight, "Sample");
// 初始化摄像机
Camera3D camera = { 0 };
camera.position = (Vector3) {
40.0f, 20.0f, 0.0f
}; //相机所在位置{x,y,z}
camera.target = (Vector3) {
0.0f, 0.0f, 0.0f
}; //相机朝向位置{x,y,z}
camera.up = (Vector3) {
0.0f, 1.0f, 0.0f
}; //相机正上方朝向矢量
camera.fovy = 70.0f; //相机视野宽度
camera.projection = CAMERA_PERSPECTIVE; //采用透视投影
//设置动画帧率刷新率fps为30帧/秒
SetTargetFPS(30);
//--------------------------------------------------------------------------------------
int angle = 0; //多边形旋转角度
// 主游戏循环
while (!WindowShouldClose()) { //关闭窗口或者按ESC键时返回true
double time = GetTime();
// 每次循环更新一帧
// 摄像机围绕y轴转动
double cameraTime = time * 0.3;
camera.position.x = (float)cos(cameraTime) * 40.0f;
camera.position.z = (float)sin(cameraTime) * 40.0f;
BeginDrawing();
ClearBackground(WHITE);
//以摄像机视角绘制3d内容
BeginMode3D(camera);
DrawCube(Vector3{0, 0, 0}, 10, 10, 10, VIOLET);
DrawCubeWires(Vector3{0, 0, 0}, 10, 10, 10, BLACK);
EndMode3D();
EndDrawing();
}
//关闭窗口
CloseWindow();
return 0;
}