Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*******************************************************************************************
- *
- * raylib [core] example - Initialize 3d mode
- *
- * 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) 2014 Ramon Santamaria (@raysan5)
- *
- ********************************************************************************************/
- #include "raylib.h"
- const Vector3 cameraOffset = { 0.0f, 10.0f, 10.0f };
- Vector3 getCameraPosition( const Vector3& basePos )
- {
- return (Vector3){ basePos.x + cameraOffset.x, basePos.y + cameraOffset.y, basePos.z + cameraOffset.z };
- }
- int main()
- {
- // Initialization
- //--------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 450;
- const float cubeSpeed = 0.4f;
- InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode");
- // Define the camera to look into our 3d world
- Camera3D camera;
- camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position
- camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
- camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
- camera.fovy = 45.0f; // Camera field-of-view Y
- camera.type = CAMERA_PERSPECTIVE; // Camera mode type
- Vector3 cubePosition = { 0.0f, 1.0f, 0.0f };
- Model model = LoadModel("gfx/obj/dungeon.obj");
- Texture2D texture = LoadTexture("gfx/txt/dungeon_1_diff.png"); // Load model texture
- model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture
- SetTargetFPS(60); // Set our game to run at 60 frames-per-second
- //--------------------------------------------------------------------------------------
- // Main game loop
- while (!WindowShouldClose()) // Detect window close button or ESC key
- {
- // Update
- //----------------------------------------------------------------------------------
- // TODO: Update your variables here
- //----------------------------------------------------------------------------------
- if (IsKeyDown(KEY_RIGHT)) cubePosition.x += cubeSpeed;
- if (IsKeyDown(KEY_UP)) cubePosition.z -= cubeSpeed;
- if (IsKeyDown(KEY_LEFT)) cubePosition.x -= cubeSpeed;
- if (IsKeyDown(KEY_DOWN)) cubePosition.z += cubeSpeed;
- camera.target = cubePosition;
- //camera.position = getCameraPosition( cubePosition );
- // Draw
- //----------------------------------------------------------------------------------
- BeginDrawing();
- ClearBackground(RAYWHITE);
- BeginMode3D(camera);
- DrawModel(model, cubePosition, 1.f, WHITE);
- //DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
- DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
- DrawGrid(20, 1.0f);
- EndMode3D();
- DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY);
- DrawFPS(10, 10);
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
- // De-Initialization
- //--------------------------------------------------------------------------------------
- UnloadTexture(texture); // Unload texture
- UnloadModel(model); // Unload model
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement