diff --git a/README.md b/README.md
index 8671103..8daf799 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,106 @@
-# Misiles
-## Información general
-Este repositorio contiene el código para el juego de Misiles controlado por la cara usando Facemesh, como fue creado en mi canal de Youtube:
-https://youtu.be/_BjL6W71mWY
+# **Misiles**
+[](https://www.ringa-tech.com/)
-## Configuración
+---
+## **Información general**
+Este repositorio contiene el código para el juego de Misiles controlado por la cara usando [Facemesh](https://google.github.io/mediapipe/solutions/face_mesh.html), como fue creado en mi canal de Youtube:
+[Ringa-Tech](https://youtu.be/_BjL6W71mWY)
+
+---
+
+## **Información Adicional:**
+
+Este juego no puede ser ejecutado en terminales de subsistemas Linux. Cómo WSL, WSL2, Termux, entre otros. Debido a que hay problemas con los triggers.
+Se puede ejecutar pero es una tarea demasiado complicada. Te comparto está información de [Stackoverflow](https://stackoverflow.com/questions/65939167/problem-using-opencv-in-wsl-when-opening-windows) en caso de que lo quieras intentar.
+
+---
+## **Configuración**
El proyecto lo hice con Python 3.7.9
+
+Pero mediaPipe acepta versiones desde 3.6, hasta 3.10.
+
+Instalar en WINDOWS:
+
+### ***Sigue los siguentes pasos:***
+
+Revisar versión de Python:
+```
+python --version
+```
+Crear un ambiente virtual:
+```
+python3 -m virtualenv venv
+```
+Activar ambiente virtual:
+```
+.\venv\Scripts\activate
+```
+Actualizar pip:
+```
+python.exe -m pip install --upgrade pip
+```
Para instalar las dependencias es necesario ejecutar
```
pip install -r requirements.txt
```
-Para ejecutar el juego, ejecutar
+
+
+---
+
+Instalar en LINUX:
+
+### ***Sigue los siguentes pasos:***
+
+Revisar versión de Python:
+```
+python --version
+```
+Crear un ambiente virtual:
+```
+python3 -m venv venv
+```
+Activar ambiente virtual:
+```
+source venv/bin/activate
+```
+Actualizar pip:
+```
+pip install --upgrade pip
+```
+Para instalar las dependencias es necesario ejecutar
+```
+pip install -r requirements.txt
+```
+
+
+
+---
+
+## **Para Ejecutar:**
+
+El siguiente comando para ejecutar el juego:
+
+**WINDOWS**
```
python .\app.py
```
+**LINUX**
+```
+python ./app.py
+```
Si no te funciona, prueba usando "python3" o "py" en lugar de "python" en el comando anterior.
-## ¿Problemas?
-Solo he probado el juego en mi equipo así que seguramente puedes encontrar problemas.
+---
-En ese caso por favor levanta un issue aquí en Github, con el mayor detalle que puedas (versión de python, de paquetes, mensaje completo de error, etc).
-Si eres ninja y lo solucionas, ¡levanta un Pull Request!
+## **¿Problemas?**
+En ese caso por favor levanta un [**issue** aquí en Github](), con el mayor detalle que puedas (versión de python, de paquetes, mensaje completo de error, etc).
+Si eres ninja y lo solucionas, [¡levanta un Pull Request!](https://github.com/ringa-tech/juego-python-ia-misiles/pulls)
+
+---
## Imágenes utilizadas
- [Iconos de cohetes creados por Freepik - Flaticon](https://www.flaticon.com/free-icons/rocket)
- [Iconos de misiles creados por Freepik - Flaticon](https://www.flaticon.com/free-icons/rocket-launch)
- [Fondo creado por Screaming Brain Studios - OpenGameArt](https://opengameart.org/content/seamless-space-backgrounds)
+
+[](https://www.ringa-tech.com/)
diff --git a/webcam.py b/webcam.py
index b292fe6..93e07c0 100644
--- a/webcam.py
+++ b/webcam.py
@@ -1,20 +1,19 @@
from threading import Thread
import cv2
-import platform
-
+
class Webcam:
def __init__(self):
self.stopped = False
self.stream = None
self.lastFrame = None
- self.os_name = platform.system()
-
+
def start(self):
t = Thread(target=self.update, args=())
t.daemon = True
t.start()
return self
+# -------------------------DETECCIÓN DE CÁMARA -------------------- #
def update(self):
if self.stream is None:
if self.os_name == "Windows":
@@ -23,6 +22,7 @@ def update(self):
self.stream = cv2.VideoCapture(0, cv2.CAP_AVFOUNDATION)
else: # Linux
self.stream = cv2.VideoCapture(0, cv2.CAP_V4L)
+
while True:
if self.stopped:
return
@@ -45,4 +45,4 @@ def height(self):
return self.stream.get(cv2.CAP_PROP_FRAME_HEIGHT )
def ready(self):
- return self.lastFrame is not None
\ No newline at end of file
+ return self.lastFrame is not None