/icytower-turtle-python

Beginner-friendly Icy Tower game built in Python using the Turtle Graphics module.

Primary LanguagePythonMIT LicenseMIT

Icy Tower in Python β„οΈπŸ•ΉοΈ

This is a beginner-friendly Icy Tower–style platformer built using Python's Turtle Graphics module.

The code is part of a full YouTube tutorial series, where we build the game step by step β€” covering everything from movement physics and wall bouncing to infinite vertical scrolling, UI, and visual effects.

πŸŽ₯ Watch the Tutorial Series

YouTube Playlist: Icy Tower in Python - Full Tutorial Series


πŸ“š Table of Contents

Use the links below to access the code for each episode:

  1. Episode 1 – Project & Screen Setup
  2. Episode 2 – Wall & Platform Rendering
  3. Episode 3 – Player Movement & Keyboard Input
  4. Episode 4 – Physics & Collision
  5. Episode 5 – Screen Scrolling & Platform Recycling
  6. Episode 6 – Score Tracking & Game Over
  7. Episode 7 – Graphics & Audio

πŸ“‚ View Full Project Structure


Follow along to:

  • Learn how to simulate physics-based platformer gameplay
  • Use Turtle Graphics to draw, animate, and update game elements in real time
  • Implement scoring systems, infinite scrolling, and jump effects
  • Polish your game with sprite animation and audio feedback

πŸ“ Project Structure

icytower-turtle-python/
β”‚
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
β”œβ”€β”€ .gitignore
β”œβ”€β”€ media/
β”‚   └── final_game.mp4
β”‚
└── episodes/
    β”œβ”€β”€ episode01/       # Project & Screen Setup
    β”‚   β”œβ”€β”€ README.md
    β”‚   β”œβ”€β”€ constants.py
    β”‚   └── main.py
    β”‚
    β”œβ”€β”€ episode02/       # Wall & Platform Rendering
    β”‚   β”œβ”€β”€ README.md
    β”‚   β”œβ”€β”€ constants.py
    β”‚   β”œβ”€β”€ main.py
    β”‚   └── renderer.py
    β”‚
    β”œβ”€β”€ episode03/       # Player Movement & Keyboard Input
    β”‚   β”œβ”€β”€ README.md
    β”‚   β”œβ”€β”€ actors.py
    β”‚   β”œβ”€β”€ constants.py
    β”‚   β”œβ”€β”€ main.py
    β”‚   └── renderer.py
    β”‚
    β”œβ”€β”€ episode04/       # Physics & Collision
    β”‚   β”œβ”€β”€ README.md
    β”‚   β”œβ”€β”€ actors.py
    β”‚   β”œβ”€β”€ constants.py
    β”‚   β”œβ”€β”€ main.py
    β”‚   └── renderer.py
    β”‚
    β”œβ”€β”€ episode05/       # Screen Scrolling & Platform Recycling
    β”‚   β”œβ”€β”€ README.md
    β”‚   β”œβ”€β”€ actors.py
    β”‚   β”œβ”€β”€ constants.py
    β”‚   β”œβ”€β”€ main.py
    β”‚   └── renderer.py
    β”‚
    β”œβ”€β”€ episode06/       # Score Tracking & Game Over
    β”‚   β”œβ”€β”€ README.md
    β”‚   β”œβ”€β”€ actors.py
    β”‚   β”œβ”€β”€ constants.py
    β”‚   β”œβ”€β”€ main.py
    β”‚   └── renderer.py
    β”‚
    └── episode07/       # Final Game – Graphics, Audio & Effects
        β”œβ”€β”€ README.md
        β”œβ”€β”€ actors.py
        β”œβ”€β”€ background.gif
        β”œβ”€β”€ constants.py
        β”œβ”€β”€ floor.gif
        β”œβ”€β”€ jump.wav
        β”œβ”€β”€ main.py
        β”œβ”€β”€ plat_6.gif
        β”œβ”€β”€ plat_7.gif
        β”œβ”€β”€ plat_7.png
        β”œβ”€β”€ plat_8.gif
        β”œβ”€β”€ plat_8.png
        β”œβ”€β”€ plat_9.gif
        β”œβ”€β”€ plat_10.gif
        β”œβ”€β”€ plat_11.gif
        β”œβ”€β”€ plat_12.gif
        β”œβ”€β”€ player.gif
        β”œβ”€β”€ player_45l.gif
        β”œβ”€β”€ player_45r.gif
        β”œβ”€β”€ player_90l.gif
        β”œβ”€β”€ player_90r.gif
        β”œβ”€β”€ player_135l.gif
        β”œβ”€β”€ player_135r.gif
        β”œβ”€β”€ player_180.gif
        β”œβ”€β”€ player_left.gif
        β”œβ”€β”€ player_right.gif
        β”œβ”€β”€ renderer.py
        └── wohoo.wav

πŸ“¦ Note:

  • episode07/ contains the final version of the complete game.
  • Sound effects are played using aplay (Linux) β€” you may need to adjust the command for Windows winsound or macOS afplay.
  • Game physics and scoring logic can all be tweaked in constants.py.

πŸ“‹ Requirements

No external libraries needed – just Python 3.x.

Make sure turtle is available (it's included with standard Python installs).

▢️ How to Run

python main.py

The game window will open, and you can start playing Icy Tower using the Right & Left arrow keys to move and Space key to jump.

πŸ“Œ About the Creator

Created by TheWannabeCoder
Making simple, hands-on Python tutorials for beginners.
YouTube: @TheWannabeCoder

πŸ“œ License

This project is licensed under the MIT License.