{"id":30340681,"url":"https://github.com/asiercl/tanksgame","last_synced_at":"2025-08-18T08:19:15.221Z","repository":{"id":291422035,"uuid":"973311053","full_name":"AsierCL/TanksGame","owner":"AsierCL","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-04T14:28:39.000Z","size":65269,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-04T15:29:41.737Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AsierCL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-26T18:01:51.000Z","updated_at":"2025-05-04T14:28:42.000Z","dependencies_parsed_at":"2025-05-04T15:41:27.987Z","dependency_job_id":null,"html_url":"https://github.com/AsierCL/TanksGame","commit_stats":null,"previous_names":["asiercl/tanksgame"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AsierCL/TanksGame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsierCL%2FTanksGame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsierCL%2FTanksGame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsierCL%2FTanksGame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsierCL%2FTanksGame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AsierCL","download_url":"https://codeload.github.com/AsierCL/TanksGame/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsierCL%2FTanksGame/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270962643,"owners_count":24676020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-18T08:19:13.610Z","updated_at":"2025-08-18T08:19:15.182Z","avatar_url":"https://github.com/AsierCL.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕹️ Juego de Tanques 3D para 2 Jugadores\n\nProyecto desarrollado como parte de la asignatura de Computación Gráfica. Se trata de un juego de tanques en 3D para dos jugadores, con soporte de texturas, iluminación, sonido, colisiones y múltiples técnicas gráficas, todo implementado en C++ con OpenGL (GLFW + GLAD).\n\n## 📁 Estructura del Proyecto\n```\nProyectoFinal/\n├── assets/\n│ ├── audio/ # Efectos de sonido y música de fondo (WAV)\n│ └── textures/ # Texturas de tanques, suelo, muros, etc. (PNG)\n├── include/\n│ ├── Engine/ # Cabeceras del motor gráfico: cámara, audio, shaders, etc.\n│ └── Utils/ # Geometrías, constantes, stb_image.h\n├── src/\n│ ├── Engine/ # Código fuente del motor\n│ └── Utils/ # glad.c y utilidades generales\n├── shaders/ # Shaders GLSL: vertex y fragment\n├── main.cpp # Punto de entrada, bucle principal\n└── Makefile # Para compilar y ejecutar el proyecto\n```\n\n## 🎮 Controles\n\n**Jugador 1**  \n- Movimiento: `W`, `A`, `S`, `D`  \n- Disparo: `X`  \n- Rotar torreta: `Q`, `E`  \n\n**Jugador 2**  \n- Movimiento: `I`, `J`, `K`, `L`  \n- Disparo: `M`  \n- Rotar torreta: `U`, `O`  \n\n**Cámara**  \n- Mover cámara: Flechas  \n- Subir/Bajar: `V` / `B`\n\n## ✨ Características Técnicas\n\n- **Renderizado OpenGL** con shaders personalizados.\n- **Iluminación Phong** (ambiente, difusa, especular).\n- **Texturizado** con PNG usando `stb_image.h`.\n- **Audio** con SDL_mixer (música de fondo y efectos).\n- **Detección de colisiones** entre proyectiles, muros y tanques.\n- **Cámara en 3ª persona** controlable por el usuario.\n- **Muros aleatorios** generados dinámicamente en el escenario.\n- **Animaciones simples** y árboles con transparencias.\n\n## 🛠️ Compilación y Ejecución\n\nEste proyecto utiliza `Makefile` para compilar, limpiar y ejecutar.\n\n### Requisitos previos\n\n- C++ (C++17 o superior recomendado)\n- OpenGL\n- GLFW\n- GLAD\n- SDL2 + SDL2_mixer\n\n### Comandos disponibles\n\n```bash\nmake         # Compila el proyecto\nmake run     # Compila (si es necesario) y ejecuta el juego\nmake clean   # Elimina los binarios y archivos temporales\n\nEjemplo de uso\n\nmake         # Compila el proyecto\nmake run     # Ejecuta el binario generado\n```\n\n🎓 Proyecto desarrollado en el contexto de la asignatura de Computación Gráfica (USC).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasiercl%2Ftanksgame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasiercl%2Ftanksgame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasiercl%2Ftanksgame/lists"}