diff options
author | nathansmithsmith <nathansmith7@mailfence.com> | 2023-09-21 21:28:50 -0600 |
---|---|---|
committer | nathansmithsmith <nathansmith7@mailfence.com> | 2023-09-21 21:28:50 -0600 |
commit | ff2c529dda20dba1ea7ef21f46703d59fb49178b (patch) | |
tree | 306f7b2749b4a7349f7dd2a505cd8b41c75942f9 | |
parent | 0387c05d7d4b784b91ea35b88caa12c4fc9fd6d3 (diff) |
Better looking gyro
-rw-r--r-- | assets/gyroscope.mtl | 12 | ||||
-rw-r--r-- | assets/gyroscope.obj | 280 | ||||
-rw-r--r-- | assets/gyroscope.png | bin | 0 -> 105390 bytes | |||
-rw-r--r-- | src/assets.c | 20 | ||||
-rw-r--r-- | src/assets.h | 10 | ||||
-rw-r--r-- | src/entities/antifaShip.c | 7 | ||||
-rw-r--r-- | src/entities/antifaShip.h | 1 | ||||
-rw-r--r-- | src/gameScreen.c | 18 | ||||
-rw-r--r-- | src/gameScreen.h | 1 |
9 files changed, 332 insertions, 17 deletions
diff --git a/assets/gyroscope.mtl b/assets/gyroscope.mtl new file mode 100644 index 0000000..8e1727c --- /dev/null +++ b/assets/gyroscope.mtl @@ -0,0 +1,12 @@ +# Blender 3.5.1 MTL File: 'gyro.blend' +# www.blender.org + +newmtl Material.001 +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 diff --git a/assets/gyroscope.obj b/assets/gyroscope.obj new file mode 100644 index 0000000..39e4d61 --- /dev/null +++ b/assets/gyroscope.obj @@ -0,0 +1,280 @@ +# Blender 3.5.1 +# www.blender.org +mtllib gyroscope.mtl +o Icosphere +v 0.000000 -1.000000 0.000000 +v 0.723607 -0.447220 0.525725 +v -0.276388 -0.447220 0.850649 +v -0.894426 -0.447216 0.000000 +v -0.276388 -0.447220 -0.850649 +v 0.723607 -0.447220 -0.525725 +v 0.276388 0.447220 0.850649 +v -0.723607 0.447220 0.525725 +v -0.723607 0.447220 -0.525725 +v 0.276388 0.447220 -0.850649 +v 0.894426 0.447216 0.000000 +v 0.000000 1.000000 0.000000 +v -0.162456 -0.850654 0.499995 +v 0.425323 -0.850654 0.309011 +v 0.262869 -0.525738 0.809012 +v 0.850648 -0.525736 0.000000 +v 0.425323 -0.850654 -0.309011 +v -0.525730 -0.850652 0.000000 +v -0.688189 -0.525736 0.499997 +v -0.162456 -0.850654 -0.499995 +v -0.688189 -0.525736 -0.499997 +v 0.262869 -0.525738 -0.809012 +v 0.951058 0.000000 0.309013 +v 0.951058 0.000000 -0.309013 +v 0.000000 0.000000 1.000000 +v 0.587786 0.000000 0.809017 +v -0.951058 0.000000 0.309013 +v -0.587786 0.000000 0.809017 +v -0.587786 0.000000 -0.809017 +v -0.951058 0.000000 -0.309013 +v 0.587786 0.000000 -0.809017 +v 0.000000 0.000000 -1.000000 +v 0.688189 0.525736 0.499997 +v -0.262869 0.525738 0.809012 +v -0.850648 0.525736 0.000000 +v -0.262869 0.525738 -0.809012 +v 0.688189 0.525736 -0.499997 +v 0.162456 0.850654 0.499995 +v 0.525730 0.850652 0.000000 +v -0.425323 0.850654 0.309011 +v -0.425323 0.850654 -0.309011 +v 0.162456 0.850654 -0.499995 +vn 0.1024 -0.9435 0.3151 +vn 0.7002 -0.6617 0.2680 +vn -0.2680 -0.9435 0.1947 +vn -0.2680 -0.9435 -0.1947 +vn 0.1024 -0.9435 -0.3151 +vn 0.9050 -0.3304 0.2680 +vn 0.0247 -0.3304 0.9435 +vn -0.8897 -0.3304 0.3151 +vn -0.5746 -0.3304 -0.7488 +vn 0.5346 -0.3304 -0.7779 +vn 0.8026 -0.1256 0.5831 +vn -0.3066 -0.1256 0.9435 +vn -0.9921 -0.1256 -0.0000 +vn -0.3066 -0.1256 -0.9435 +vn 0.8026 -0.1256 -0.5831 +vn 0.4089 0.6617 0.6284 +vn -0.4713 0.6617 0.5831 +vn -0.7002 0.6617 -0.2680 +vn 0.0385 0.6617 -0.7488 +vn 0.7240 0.6617 -0.1947 +vn 0.2680 0.9435 -0.1947 +vn 0.4911 0.7947 -0.3568 +vn 0.4089 0.6617 -0.6284 +vn -0.1024 0.9435 -0.3151 +vn -0.1876 0.7947 -0.5773 +vn -0.4713 0.6617 -0.5831 +vn -0.3313 0.9435 -0.0000 +vn -0.6071 0.7947 -0.0000 +vn -0.7002 0.6617 0.2680 +vn -0.1024 0.9435 0.3151 +vn -0.1876 0.7947 0.5773 +vn 0.0385 0.6617 0.7488 +vn 0.2680 0.9435 0.1947 +vn 0.4911 0.7947 0.3568 +vn 0.7240 0.6617 0.1947 +vn 0.8897 0.3304 -0.3151 +vn 0.7947 0.1876 -0.5773 +vn 0.5746 0.3304 -0.7488 +vn -0.0247 0.3304 -0.9435 +vn -0.3035 0.1876 -0.9342 +vn -0.5346 0.3304 -0.7779 +vn -0.9050 0.3304 -0.2680 +vn -0.9822 0.1876 -0.0000 +vn -0.9050 0.3304 0.2680 +vn -0.5346 0.3304 0.7779 +vn -0.3035 0.1876 0.9342 +vn -0.0247 0.3304 0.9435 +vn 0.5746 0.3304 0.7488 +vn 0.7947 0.1876 0.5773 +vn 0.8897 0.3304 0.3151 +vn 0.3066 0.1256 -0.9435 +vn 0.3035 -0.1876 -0.9342 +vn 0.0247 -0.3304 -0.9435 +vn -0.8026 0.1256 -0.5831 +vn -0.7947 -0.1876 -0.5773 +vn -0.8897 -0.3304 -0.3151 +vn -0.8026 0.1256 0.5831 +vn -0.7947 -0.1876 0.5773 +vn -0.5746 -0.3304 0.7488 +vn 0.3066 0.1256 0.9435 +vn 0.3035 -0.1876 0.9342 +vn 0.5346 -0.3304 0.7779 +vn 0.9921 0.1256 -0.0000 +vn 0.9822 -0.1876 -0.0000 +vn 0.9050 -0.3304 -0.2680 +vn 0.4713 -0.6617 -0.5831 +vn 0.1876 -0.7947 -0.5773 +vn -0.0385 -0.6617 -0.7488 +vn -0.4089 -0.6617 -0.6284 +vn -0.4911 -0.7947 -0.3568 +vn -0.7240 -0.6617 -0.1947 +vn -0.7240 -0.6617 0.1947 +vn -0.4911 -0.7947 0.3568 +vn -0.4089 -0.6617 0.6284 +vn 0.7002 -0.6617 -0.2680 +vn 0.6071 -0.7947 -0.0000 +vn 0.3313 -0.9435 -0.0000 +vn -0.0385 -0.6617 0.7488 +vn 0.1876 -0.7947 0.5773 +vn 0.4713 -0.6617 0.5831 +vt 0.094799 0.499779 +vt 0.809837 0.307796 +vt 0.198363 0.685005 +vt 0.116816 0.297055 +vt 0.971919 0.505932 +vt 0.302788 0.189684 +vt 0.759840 0.498352 +vt 0.451909 0.297056 +vt 0.307012 0.499779 +vt 0.906721 0.118985 +vt 0.642104 0.592901 +vt 0.116816 0.082311 +vt 0.533456 0.407675 +vt 0.856724 0.687163 +vt 0.451909 0.082312 +vt 0.694642 0.126566 +vt 0.637881 0.189683 +vt 0.429891 0.592902 +vt 0.201326 0.354911 +vt 0.029707 0.579983 +vt 0.141533 0.600358 +vt 0.917688 0.307796 +vt 0.083414 0.354911 +vt 0.090581 0.688857 +vt 0.536418 0.354911 +vt 0.266269 0.600358 +vt 0.205395 0.491486 +vt 0.024456 0.458518 +vt 0.926139 0.408279 +vt 0.310637 0.291800 +vt 0.215244 0.252795 +vt 0.133038 0.403823 +vt 0.801483 0.403823 +vt 0.870663 0.494014 +vt 0.359550 0.252797 +vt 0.257774 0.403823 +vt 0.691017 0.454605 +vt 0.292408 0.688857 +vt 0.738951 0.225627 +vt 0.645730 0.291799 +vt 0.550337 0.252795 +vt 0.024456 0.252794 +vt 0.974636 0.196816 +vt 0.863608 0.221172 +vt 0.215244 0.126572 +vt 0.105932 0.189683 +vt 0.802952 0.600539 +vt 0.627501 0.403823 +vt 0.310637 0.087568 +vt 0.927610 0.604994 +vt 0.441025 0.189684 +vt 0.359549 0.126573 +vt 0.691925 0.576183 +vt 0.795897 0.114647 +vt 0.592867 0.688857 +vt 0.024457 0.126570 +vt 0.975544 0.075238 +vt 0.601361 0.492322 +vt 0.201325 0.024456 +vt 0.425673 0.403823 +vt 0.418507 0.024456 +vt 0.748872 0.687163 +vt 0.550337 0.126572 +vt 0.468131 0.688857 +vt 0.865078 0.024456 +vt 0.645730 0.087567 +vt 0.359549 0.634163 +vt 0.740421 0.028912 +vt 0.540488 0.601195 +vt 0.476626 0.492323 +vt 0.536419 0.024456 +vt 0.364800 0.512697 +s 0 +usemtl Material.001 +f 1/1/1 14/21/1 13/20/1 +f 2/3/2 14/21/2 16/26/2 +f 1/1/3 13/20/3 18/28/3 +f 1/1/4 18/28/4 20/32/4 +f 1/1/5 20/32/5 17/27/5 +f 2/3/6 16/26/6 23/38/6 +f 3/4/7 15/23/7 25/42/7 +f 4/6/8 19/31/8 27/45/8 +f 5/7/9 21/34/9 29/47/9 +f 6/8/10 22/35/10 31/51/10 +f 2/2/11 23/39/11 26/44/11 +f 3/4/12 25/42/12 28/46/12 +f 4/6/13 27/45/13 30/49/13 +f 5/7/14 29/47/14 32/53/14 +f 6/8/15 31/51/15 24/41/15 +f 7/10/16 33/54/16 38/65/16 +f 8/11/17 34/55/17 40/69/17 +f 9/13/18 35/58/18 41/70/18 +f 10/15/19 36/61/19 42/71/19 +f 11/17/20 37/63/20 39/66/20 +f 39/67/21 42/72/21 12/18/21 +f 39/66/22 37/63/22 42/71/22 +f 37/63/23 10/15/23 42/71/23 +f 42/72/24 41/70/24 12/18/24 +f 42/72/25 36/60/25 41/70/25 +f 36/60/26 9/13/26 41/70/26 +f 41/70/27 40/69/27 12/18/27 +f 41/70/28 35/58/28 40/69/28 +f 35/58/29 8/11/29 40/69/29 +f 40/69/30 38/64/30 12/18/30 +f 40/69/31 34/55/31 38/64/31 +f 34/57/32 7/10/32 38/65/32 +f 38/64/33 39/67/33 12/18/33 +f 38/65/34 33/54/34 39/68/34 +f 33/54/35 11/16/35 39/68/35 +f 24/41/36 37/63/36 11/17/36 +f 24/41/37 31/51/37 37/63/37 +f 31/51/38 10/15/38 37/63/38 +f 32/52/39 36/61/39 10/15/39 +f 32/53/40 29/47/40 36/62/40 +f 29/47/41 9/14/41 36/62/41 +f 30/48/42 35/58/42 9/13/42 +f 30/49/43 27/45/43 35/59/43 +f 27/45/44 8/12/44 35/59/44 +f 28/46/45 34/56/45 8/12/45 +f 28/46/46 25/42/46 34/56/46 +f 25/43/47 7/10/47 34/57/47 +f 26/44/48 33/54/48 7/10/48 +f 26/44/49 23/39/49 33/54/49 +f 23/39/50 11/16/50 33/54/50 +f 31/51/51 32/52/51 10/15/51 +f 31/51/52 22/35/52 32/52/52 +f 22/37/53 5/7/53 32/53/53 +f 29/47/54 30/50/54 9/14/54 +f 29/47/55 21/34/55 30/50/55 +f 21/34/56 4/5/56 30/50/56 +f 27/45/57 28/46/57 8/12/57 +f 27/45/58 19/31/58 28/46/58 +f 19/31/59 3/4/59 28/46/59 +f 25/43/60 26/44/60 7/10/60 +f 25/43/61 15/22/61 26/44/61 +f 15/22/62 2/2/62 26/44/62 +f 23/40/63 24/41/63 11/17/63 +f 23/40/64 16/25/64 24/41/64 +f 16/25/65 6/8/65 24/41/65 +f 17/27/66 22/36/66 6/9/66 +f 17/27/67 20/32/67 22/36/67 +f 20/33/68 5/7/68 22/37/68 +f 20/33/69 21/34/69 5/7/69 +f 20/33/70 18/29/70 21/34/70 +f 18/29/71 4/5/71 21/34/71 +f 18/30/72 19/31/72 4/6/72 +f 18/30/73 13/19/73 19/31/73 +f 13/19/74 3/4/74 19/31/74 +f 16/26/75 17/27/75 6/9/75 +f 16/26/76 14/21/76 17/27/76 +f 14/21/77 1/1/77 17/27/77 +f 13/19/78 15/23/78 3/4/78 +f 13/20/79 14/21/79 15/24/79 +f 14/21/80 2/3/80 15/24/80 diff --git a/assets/gyroscope.png b/assets/gyroscope.png Binary files differnew file mode 100644 index 0000000..c6da908 --- /dev/null +++ b/assets/gyroscope.png diff --git a/src/assets.c b/src/assets.c index fd11707..cc6a7b0 100644 --- a/src/assets.c +++ b/src/assets.c @@ -3,7 +3,8 @@ const char textureAssetPaths[TEXTURE_ASSET_COUNT][ASSET_PATH_MAX] = { "/home/nathan/Documents/KillaFacsista/assets/icon.png", "/home/nathan/Documents/KillaFacsista/assets/icon128.png", - "/home/nathan/Documents/KillaFacsista/assets/icon64.png" + "/home/nathan/Documents/KillaFacsista/assets/icon64.png", + "/home/nathan/Documents/KillaFacsista/assets/gyroscope.png" }; const char modelAssetPaths[MODEL_ASSET_COUNT][ASSET_PATH_MAX] = { @@ -15,12 +16,25 @@ const char modelAssetPaths[MODEL_ASSET_COUNT][ASSET_PATH_MAX] = { "/home/nathan/Documents/KillaFacsista/assets/generale.obj", "/home/nathan/Documents/KillaFacsista/assets/mussolini.obj", "/home/nathan/Documents/KillaFacsista/assets/guidedMissile.obj", - "/home/nathan/Documents/KillaFacsista/assets/missile.obj" + "/home/nathan/Documents/KillaFacsista/assets/missile.obj", + "/home/nathan/Documents/KillaFacsista/assets/gyroscope.obj" }; +// Some models have textures and other stuff to be set. +void configModelAssets(Assets * assets) { + // Gyroscope + SetMaterialTexture( + &assets->models[GYROSCOPE_ASSET].materials[0], + MATERIAL_MAP_DIFFUSE, + assets->textures[GYROSCOPE_TEXTURE_ASSET] + ); +} + void LoadAssets(Assets * assets) { int i; + // Textures first because models can use textures. + // Textures. for (i = 0; i < TEXTURE_ASSET_COUNT; ++i) assets->textures[i] = LoadTexture(textureAssetPaths[i]); @@ -29,6 +43,8 @@ void LoadAssets(Assets * assets) { for (i = 0; i < MODEL_ASSET_COUNT; ++i) assets->models[i] = LoadModel(modelAssetPaths[i]); + configModelAssets(assets); + TraceLog(LOG_INFO, "Assets loaded"); } diff --git a/src/assets.h b/src/assets.h index ed842a6..beeb672 100644 --- a/src/assets.h +++ b/src/assets.h @@ -5,8 +5,8 @@ #define ASSET_PATH_MAX 255 -#define TEXTURE_ASSET_COUNT 3 -#define MODEL_ASSET_COUNT 9 +#define TEXTURE_ASSET_COUNT 4 +#define MODEL_ASSET_COUNT 10 // Paths to assets. extern const char textureAssetPaths[TEXTURE_ASSET_COUNT][ASSET_PATH_MAX]; @@ -18,7 +18,8 @@ typedef int32_t AssetId; enum { ICON_ASSET, ICON128_ASSET, - ICON64_ASSET + ICON64_ASSET, + GYROSCOPE_TEXTURE_ASSET, }; // Model asset ids. @@ -31,7 +32,8 @@ enum { GENERALE_ASSET, MUSSOLINI_ASSET, GUIDED_MISSILE_ASSET, - MISSILE_ASSET + MISSILE_ASSET, + GYROSCOPE_ASSET }; typedef struct Assets { diff --git a/src/entities/antifaShip.c b/src/entities/antifaShip.c index fb307fb..bd64545 100644 --- a/src/entities/antifaShip.c +++ b/src/entities/antifaShip.c @@ -29,6 +29,7 @@ void initAntifaShip(Entity * entity, Game * game) { AntifaShip * data = (AntifaShip*)entity->data; data->lastMouse = GetMousePosition(); data->forwardSpeed = 0.0; + data->shouldInitMousePosition = true; } void closeAntifaShip(Entity * entity) { @@ -77,6 +78,12 @@ void controlAntifaShipJoystick(Game * game, Entity * entity) { void controlAntifaShipKeyboardAndMouse(Game * game, Entity * entity) { AntifaShip * data = (AntifaShip*)entity->data; + // Resets mouse on init. + if (data->shouldInitMousePosition) { + data->shouldInitMousePosition = false; + SetMousePosition(0, 0); + } + // Get mouse values. Vector2 mouse = GetMousePosition(); float speed = GetMouseWheelMove(); diff --git a/src/entities/antifaShip.h b/src/entities/antifaShip.h index 06ef094..e9c78bd 100644 --- a/src/entities/antifaShip.h +++ b/src/entities/antifaShip.h @@ -9,6 +9,7 @@ typedef struct AntifaShip { Vector2 lastMouse; float forwardSpeed; + bool shouldInitMousePosition; } AntifaShip; void initAntifaShip(Entity * entity, Game * game); diff --git a/src/gameScreen.c b/src/gameScreen.c index 7849af3..96e14ca 100644 --- a/src/gameScreen.c +++ b/src/gameScreen.c @@ -2,7 +2,7 @@ #include "game.h" #include "world.h" #include "bullets.h" -#include <raylib.h> +#include "assets.h" void initGameScreenGui(GameScreen * gameScreen) { float width = GetScreenWidth(); @@ -14,7 +14,6 @@ void initGameScreenGui(GameScreen * gameScreen) { gameScreen->gyroscopePosition = (Vector2){ (width / 2.0) - (GYROSCOPE_TEXTURE_SIZE / 2.0), height / 1.8 - }; } @@ -25,7 +24,7 @@ void initGameScreen(GameScreen * gameScreen) { gameScreen->gyroscopeCamaera = (Camera3D){ .fovy = 45, .projection = CAMERA_PERSPECTIVE, - .position = (Vector3){0.0, 0.0, -3.0}, + .position = (Vector3){0.0, 0.0, 3.0}, .target = Vector3Zero(), .up = (Vector3){0.0, 1.0, 0.0} }; @@ -34,15 +33,10 @@ void initGameScreen(GameScreen * gameScreen) { GYROSCOPE_TEXTURE_SIZE, GYROSCOPE_TEXTURE_SIZE ); - - // Load model. - Mesh mesh = GenMeshSphere(1.0, 8, 8); - gameScreen->gyroscopeModel = LoadModelFromMesh(mesh); } void freeGameScreen(GameScreen * gameScreen) { UnloadRenderTexture(gameScreen->gyroscopeTexture); - UnloadModel(gameScreen->gyroscopeModel); } void drawCrossHair(float size, float thick, Color color) { @@ -70,14 +64,18 @@ void drawGyroscope(Game * game) { Entity * player = getEntityFromWorld(game->world, 0); Vector2 gyroscopePosition = gameScreen->gyroscopePosition; + // Get texture and model. + Texture2D texture = game->assets.textures[GYROSCOPE_TEXTURE_ASSET]; + Model model = game->assets.models[GYROSCOPE_ASSET]; + // Draw this mother fucker. BeginTextureMode(gameScreen->gyroscopeTexture); ClearBackground(BLACK); BeginMode3D(gameScreen->gyroscopeCamaera); // Set transform and draw. - gameScreen->gyroscopeModel.transform = QuaternionToMatrix(QuaternionInvert(player->rotation)); - DrawModelWires(gameScreen->gyroscopeModel, Vector3Zero(), 1, BLUE); + model.transform = QuaternionToMatrix(player->rotation); + DrawModel(model, Vector3Zero(), 1, WHITE); EndMode3D(); EndTextureMode(); diff --git a/src/gameScreen.h b/src/gameScreen.h index c0169c6..20872b3 100644 --- a/src/gameScreen.h +++ b/src/gameScreen.h @@ -13,7 +13,6 @@ typedef struct GameScreen { Vector2 gyroscopePosition; Camera3D gyroscopeCamaera; RenderTexture gyroscopeTexture; - Model gyroscopeModel; } GameScreen; void initGameScreen(GameScreen * gameScreen); |