Skip to content

WIP: Python AsyncIO-ready Turtle Graphics

License

Notifications You must be signed in to change notification settings

tmontes/python-aturtle

Repository files navigation

Python A-Turtle: AsyncIO-ready Turtle Graphics

Python A-Trutle is a library that implements Turtle Graphics with asyncio support.

A short capability summary:

  • Supports both sync and asyncio compatible coroutine API.
  • Multiple turtle support with either vector or bitmap shapes.
  • Concurrent animation support via the coroutine API.
  • Built on top of the Standard Library's tkinter module.
  • Sprite support (essentially turtles that don't draw lines)
  • More.

Installation

Python A-Turtle is a pure Python package distributed via PyPI. Install it with:

$ pip install aturtle

For improved bitmap image rotation speed and quality, install the optional Pillow extra with:

$ pip install aturtle[pillow]

Quick Start

import aturtle

w = aturtle.Window()
sh = aturtle.shapes.vector.Triangle(radius=20, angle=0)
s = aturtle.create_sprite(w, sh, update=True)
t = aturtle.turtle.Turtle(s)
t.sync_forward(100)

Thanks

  • To the creators and maintainers of Tcl/Tk, a programming language I used for a while in the late 1990's, in particular for the seriously under-appreciated Canvas widget which is amazingly powerful. Python embeds the Tcl/Tk interpreter in the form of the tkinter Standard Library module. Long live Tcl/Tk and tkinter!
  • To whoever Quarks is, for sharing an effective technique for debouncing Tk KeyPress / KeyRelease events in towards the end of this thread.
  • To Terry Pratchet, for his Discworld novels and, in particular, for Great A'Tuin, the "Giant Star Turtle (...) who travels through the Discworld universe's space, carrying four giant elephants (...) who in turn carry the Discworld.", which has come to my mind often while creating this.

About

Python A-Turtle is being created by Tiago Montes.

About

WIP: Python AsyncIO-ready Turtle Graphics

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages