aboutsummaryrefslogtreecommitdiff
path: root/examples/ex07c_3d_models.c
blob: cecd85639e7a017abe33a1a6957a19ce97112669 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*******************************************************************************************
*
*	raylib example 07c - Load and draw a 3d model (OBJ)
*
*	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 Ramon Santamaria (Ray San - raysan@raysanweb.com)
*
********************************************************************************************/

#include "raylib.h"

int main()
{
	int screenWidth = 800;
	int screenHeight = 450;

	Vector3 position = { 0.0, 0.0, 0.0 };
	
    // Define the camera to look into our 3d world
	Camera camera = {{ 10.0, 8.0, 10.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 1.0, 0.0 }};
	
	// Initialization
	//---------------------------------------------------------
	InitWindow(screenWidth, screenHeight, "raylib example 07c - 3d models");
	
    SetTargetFPS(60);   // Set our game to run at 60 frames-per-second
    
    Texture2D texture = LoadTexture("resources/catwhite.png");
	Model cat = LoadModel("resources/cat.obj");
    //----------------------------------------------------------
	
    // Main game loop
    while (!WindowShouldClose())	// Detect window close button or ESC key
    {
		// Update
		//-----------------------------------------------------
		if (IsKeyPressed(KEY_LEFT)) position.x -= 0.2;
		if (IsKeyPressed(KEY_RIGHT)) position.x += 0.2;
        if (IsKeyPressed(KEY_UP)) position.z -= 0.2;
        if (IsKeyPressed(KEY_DOWN)) position.z += 0.2;
		//-----------------------------------------------------
		
		// Draw
		//-----------------------------------------------------
		BeginDrawing();
		
			ClearBackground(RAYWHITE);
			
			Begin3dMode(camera);
			
				DrawModelEx(cat, texture, position, 0.1f, WHITE);   // Draw 3d model with texture

				DrawGrid(10.0, 1.0);        // Draw a grid
                
                DrawGizmo(position, false); 
				
			End3dMode();
			
			DrawFps(10, 10);
		
        EndDrawing();
		//-----------------------------------------------------
    }

	// De-Initialization
	//---------------------------------------------------------
    UnloadTexture(texture);     // Unload texture
	UnloadModel(cat);           // Unload model
    
    CloseWindow();		// Close window and OpenGL context
	//----------------------------------------------------------
	
    return 0;
}