Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/taturtle.py
diff options
context:
space:
mode:
Diffstat (limited to 'TurtleArt/taturtle.py')
-rw-r--r--TurtleArt/taturtle.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/TurtleArt/taturtle.py b/TurtleArt/taturtle.py
index 5272cd6..91e7dfc 100644
--- a/TurtleArt/taturtle.py
+++ b/TurtleArt/taturtle.py
@@ -24,12 +24,19 @@ from tasprite_factory import SVG, svg_str_to_pixbuf
from tacanvas import wrap100, color_table
from sprites import Sprite
+import logging
+_logger = logging.getLogger('turtleart-activity')
+
+
+SHAPES = 36
+
+
def generate_turtle_pixbufs(colors):
""" Generate pixbufs for generic turtles """
shapes = []
svg = SVG()
svg.set_scale(1.0)
- for i in range(36):
+ for i in range(SHAPES):
svg.set_orientation(i*10)
shapes.append(svg_str_to_pixbuf(svg.turtle(colors)))
return shapes
@@ -143,10 +150,25 @@ class Turtle:
self.spr = None
turtles.add_to_dict(key, self)
+ def set_shapes(self, shapes):
+ """ Reskin the turtle """
+ n = len(shapes)
+ if n == SHAPES:
+ self.shapes = shapes[:]
+ else:
+ if n != 1:
+ _logger.debug("%d images passed to set_shapes: ignoring" % (n))
+ images = [shapes[0]]
+ for i in range(3):
+ images.append(images[i].rotate_simple(90))
+ for i in range(SHAPES):
+ j = (i + 4) % SHAPES
+ self.shapes[j] = images[int(j/9) % 4]
+
def set_heading(self, heading):
- """ Set the turtle heading (and shape: one per 10 degrees) """
+ """ Set the turtle heading (one shape per 360/SHAPES degrees) """
self.heading = heading
- i = (int(self.heading+5)%360)/10
+ i = (int(self.heading+5)%360)/(360 / SHAPES)
if not self.hidden and self.spr is not None:
try:
self.spr.set_shape(self.shapes[i])