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.py31
1 files changed, 18 insertions, 13 deletions
diff --git a/TurtleArt/taturtle.py b/TurtleArt/taturtle.py
index 1ed557c..5e24ce7 100644
--- a/TurtleArt/taturtle.py
+++ b/TurtleArt/taturtle.py
@@ -157,7 +157,7 @@ class Turtles:
# if it is a new turtle, start it in the center of the screen
self._active_turtle = self.get_turtle(turtle_name, True, colors)
self._active_turtle.set_heading(0.0, False)
- self._active_turtle.set_xy((0.0, 0.0), False, pendown=False)
+ self._active_turtle.set_xy(0.0, 0.0, share=False, pendown=False)
self._active_turtle.set_pen_state(True)
elif colors is not None:
self._active_turtle = self.get_turtle(turtle_name, False)
@@ -333,6 +333,15 @@ class Turtle:
return
self._heading %= 360
+ self._update_sprite_heading()
+
+ if self._turtles.turtle_window.sharing() and share:
+ event = 'r|%s' % (data_to_string([self._turtles.turtle_window.nick,
+ round_int(self._heading)]))
+ self._turtles.turtle_window.send_event(event)
+
+ def _update_sprite_heading(self):
+ ''' Update the sprite to reflect the current heading '''
i = (int(self._heading + 5) % 360) / (360 / SHAPES)
if not self._hidden and self.spr is not None:
try:
@@ -340,11 +349,6 @@ class Turtle:
except IndexError:
self.spr.set_shape(self._shapes[0])
- if self._turtles.turtle_window.sharing() and share:
- event = 'r|%s' % (data_to_string([self._turtles.turtle_window.nick,
- round_int(self._heading)]))
- self._turtles.turtle_window.send_event(event)
-
def set_color(self, color=None, share=True):
''' Set the pen color for this turtle. '''
# Special case for color blocks
@@ -489,7 +493,7 @@ class Turtle:
self.spr.set_layer(TURTLE_LAYER)
self._hidden = False
self.move_turtle_spr((self._x, self._y))
- self.set_heading(self._heading)
+ self.set_heading(self._heading, share=False)
if self.label_block is not None:
self.label_block.spr.set_layer(TURTLE_LAYER + 1)
@@ -525,6 +529,8 @@ class Turtle:
return
self._heading %= 360
+ self._update_sprite_heading()
+
if self._turtles.turtle_window.sharing() and share:
event = 'r|%s' % (data_to_string([self._turtles.turtle_window.nick,
round_int(self._heading)]))
@@ -562,16 +568,15 @@ class Turtle:
int(distance)]))
self._turtles.turtle_window.send_event(event)
- def set_xy(self, pos, share=True, pendown=True, dragging=False):
+ def set_xy(self, x, y, share=True, pendown=True, dragging=False):
old = self.get_xy()
-
try:
if dragging:
- xcor = pos[0]
- ycor = pos[1]
+ xcor = x
+ ycor = y
else:
- xcor = pos[0] * self._turtles.turtle_window.coord_scale
- ycor = pos[1] * self._turtles.turtle_window.coord_scale
+ xcor = x * self._turtles.turtle_window.coord_scale
+ ycor = y * self._turtles.turtle_window.coord_scale
except (TypeError, ValueError):
debug_output('bad value sent to %s' % (__name__),
self._turtles.turtle_window.running_sugar)