Have you ever imagined playing a game like Temple Run just by waving your hand in front of a camera? Well, in this step-by-step blog, you will learn how to build a hand gesture-controlled Temple Run game using Python. We’ll be using tools like OpenCV, Mediapipe, and PyAutoGUI to make it all work. This is a great beginner-friendly project if you’re getting started with computer vision and automation.
Before that, read this now – https://linkedin.openinapp.co/fsg5z
GITHUB REPO LINK – https://shorturl.at/xKeZ3
π What We Are Going to Build
We will create a system where your webcam detects your hand gestures and sends keyboard controls to play Temple Run (browser/emulator version). For example:
- ποΈ Index + Middle Fingers Up β Jump
- π¦ΉββοΈ Ring + Pinky Fingers Up β Slide
- π Thumb + Index β Turn Right
- π Middle + Ring β Turn Left
β‘ Tech Stack
- Python
- OpenCV β For webcam and image processing
- Mediapipe β For detecting hand and finger positions
- PyAutoGUI β For simulating key presses
π§ Step-by-Step Tutorial
Play Temple Run Using Hand Gestures
Step 1: Install Python
Make sure Python 3.8 or later is installed.
- Visit: https://python.org
- Download and install the latest version
Step 2: Setup Project Folder
Create a new folder on your desktop:
TempleRun-Gesture-Control
Open this folder in VS Code.
Step 3: Create a Python File
Create a new file named:
main.py
Step 4: Install Required Libraries
Open terminal in VS Code and install dependencies:
pip install opencv-python mediapipe pyautogui
Step 5: Write the Python Code
Paste this full code into main.py:
import cv2
import mediapipe as mp
import pyautogui
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(max_num_hands=1)
mp_draw = mp.solutions.drawing_utils
cap = cv2.VideoCapture(0)
tip_ids = [4, 8, 12, 16, 20]
while True:
success, img = cap.read()
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
results = hands.process(img_rgb)
if results.multi_hand_landmarks:
for handLms in results.multi_hand_landmarks:
lmList = []
for id, lm in enumerate(handLms.landmark):
h, w, _ = img.shape
cx, cy = int(lm.x * w), int(lm.y * h)
lmList.append((cx, cy))
fingers = []
if lmList[tip_ids[0]][0] > lmList[tip_ids[0] - 1][0]:
fingers.append(1)
else:
fingers.append(0)
for id in range(1, 5):
if lmList[tip_ids[id]][1] < lmList[tip_ids[id] - 2][1]:
fingers.append(1)
else:
fingers.append(0)
if fingers == [0, 1, 1, 0, 0]:
pyautogui.press("up")
print("Jump")
elif fingers == [0, 0, 0, 1, 1]:
pyautogui.press("down")
print("Slide")
elif fingers == [1, 1, 0, 0, 0]:
pyautogui.press("right")
print("Right")
elif fingers == [0, 0, 1, 1, 0]:
pyautogui.press("left")
print("Left")
mp_draw.draw_landmarks(img, handLms, mp_hands.HAND_CONNECTIONS)
cv2.imshow("Temple Run Controller", img)
if cv2.waitKey(1) == ord('q'):
break
Step 6: Run the Code
- Make sure your webcam is turned on.
- Press the Run button in VS Code or use the terminal:
python main.py
- A window will open showing your webcam feed. Now show your gestures!
Step 7: Play Temple Run
- Open Temple Run Emulator in your browser.
- Focus the browser window.
- Use your hand gestures:
- Peace sign (Index + Middle) = Jump
- Rock sign (Ring + Pinky) = Slide
- Thumb + Index = Right
- Middle + Ring = Left
π Pro Tips
- Use good lighting for better hand detection.
- Keep your hand steady for accurate gesture recognition.
- Customize gestures by editing the
fingers == [...]combinations.
π Output Demo (Optional for YouTube/Reel)
You can screen-record and show:
- Hand gestures in webcam window
- Game reacting to those gestures
π What You Learned
- Basics of Computer Vision using OpenCV
- Hand Tracking using Mediapipe
- Keyboard Automation using PyAutoGUI
- How to build fun Python automation projects
π Stay Connected!
If you liked this project, follow me on Instagram @udaycodes for daily beginner-friendly content, Python tips, and project ideas!