|
@@ -1,39 +1,83 @@
|
|
|
-#include <math.h>
|
|
|
+/*******************************************************************************************
|
|
|
+*
|
|
|
+* raylib [core] example - Basic 3d example
|
|
|
+*
|
|
|
+* Welcome to raylib!
|
|
|
+*
|
|
|
+* To compile example, just press F5.
|
|
|
+* Note that compiled executable is placed in the same folder as .c file
|
|
|
+*
|
|
|
+* You can find all basic examples on C:\raylib\raylib\examples folder or
|
|
|
+* raylib official webpage: www.raylib.com
|
|
|
+*
|
|
|
+* Enjoy using raylib. :)
|
|
|
+*
|
|
|
+* This example has been created using raylib 1.0 (www.raylib.com)
|
|
|
+* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
|
+*
|
|
|
+* Copyright (c) 2013-2019 Ramon Santamaria (@raysan5)
|
|
|
+*
|
|
|
+********************************************************************************************/
|
|
|
+
|
|
|
#include "raylib.h"
|
|
|
|
|
|
-int main() {
|
|
|
- int screenWidth = 800;
|
|
|
- int screenHeight = 450;
|
|
|
+int main()
|
|
|
+{
|
|
|
+ // Initialization
|
|
|
+ //--------------------------------------------------------------------------------------
|
|
|
+ const int screenWidth = 800;
|
|
|
+ const int screenHeight = 450;
|
|
|
|
|
|
InitWindow(screenWidth, screenHeight, "raylib");
|
|
|
|
|
|
- Camera cam;
|
|
|
- cam.position = (Vector3){ 0.f, 10.f, 8.f };
|
|
|
- cam.target = (Vector3){ 0.f, 0.f, 0.f };
|
|
|
- cam.up = (Vector3){ 0.f, 1.f, 0.f };
|
|
|
- cam.fovy = 60.f;
|
|
|
- cam.type = CAMERA_PERSPECTIVE;
|
|
|
+ Camera camera = { 0 };
|
|
|
+ camera.position = (Vector3){ 10.0f, 10.0f, 8.0f };
|
|
|
+ camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
|
|
|
+ camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
|
|
|
+ camera.fovy = 60.0f;
|
|
|
+ camera.type = CAMERA_PERSPECTIVE;
|
|
|
+
|
|
|
+ SetCameraMode(camera, CAMERA_ORBITAL);
|
|
|
|
|
|
- Vector3 cubePos = { 0.f, 0.f, 0.f };
|
|
|
+ Vector3 cubePosition = { 0.0f };
|
|
|
|
|
|
- SetTargetFPS(60);
|
|
|
+ SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
|
+ //--------------------------------------------------------------------------------------
|
|
|
|
|
|
- while (!WindowShouldClose()) {
|
|
|
- cam.position.x = sin(GetTime()) * 10.f;
|
|
|
- cam.position.z = cos(GetTime()) * 10.f;
|
|
|
+ // Main game loop
|
|
|
+ while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
|
+ {
|
|
|
+ // Update
|
|
|
+ //----------------------------------------------------------------------------------
|
|
|
+ UpdateCamera(&camera);
|
|
|
+ //----------------------------------------------------------------------------------
|
|
|
|
|
|
+ // Draw
|
|
|
+ //----------------------------------------------------------------------------------
|
|
|
BeginDrawing();
|
|
|
+
|
|
|
ClearBackground(RAYWHITE);
|
|
|
- BeginMode3D(cam);
|
|
|
- DrawCube(cubePos, 2.f, 2.f, 2.f, RED);
|
|
|
- DrawCubeWires(cubePos, 2.f, 2.f, 2.f, MAROON);
|
|
|
- DrawGrid(10, 1.f);
|
|
|
+
|
|
|
+ BeginMode3D(camera);
|
|
|
+
|
|
|
+ DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
|
|
+ DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
|
|
+ DrawGrid(10, 1.0f);
|
|
|
+
|
|
|
EndMode3D();
|
|
|
+
|
|
|
DrawText("This is a raylib example", 10, 40, 20, DARKGRAY);
|
|
|
+
|
|
|
DrawFPS(10, 10);
|
|
|
+
|
|
|
EndDrawing();
|
|
|
+ //----------------------------------------------------------------------------------
|
|
|
}
|
|
|
-
|
|
|
- CloseWindow();
|
|
|
- return 0;
|
|
|
+
|
|
|
+ // De-Initialization
|
|
|
+ //--------------------------------------------------------------------------------------
|
|
|
+ CloseWindow(); // Close window and OpenGL context
|
|
|
+ //--------------------------------------------------------------------------------------
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|