Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-03-13 16:25:23 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-03-13 16:25:23 (GMT)
commite39c136f6ac3e2fafc7ff17e4e1d38a157f261cf (patch)
tree6bf759a9da481cba5fae31493dc4ccacae469e42 /TurtleArt
parente1bccd2cdbc1bd74c6fd4bd8b1fc30838f0c66ee (diff)
send turtle mouse movements to share; don't reset remote turtle
Diffstat (limited to 'TurtleArt')
-rw-r--r--TurtleArt/tacanvas.py24
-rw-r--r--TurtleArt/tawindow.py24
2 files changed, 33 insertions, 15 deletions
diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py
index 553455f..dea9ed6 100644
--- a/TurtleArt/tacanvas.py
+++ b/TurtleArt/tacanvas.py
@@ -195,17 +195,19 @@ class TurtleGraphics:
self.settextcolor(70)
self.setshade(50, share)
for turtle_key in iter(self.tw.turtles.dict):
- self.set_turtle(turtle_key)
- self.tw.active_turtle.set_color(0)
- self.tw.active_turtle.set_shade(50)
- self.tw.active_turtle.set_gray(100)
- self.tw.active_turtle.set_pen_size(5)
- self.tw.active_turtle.reset_shapes()
- self.seth(0, share)
- self.setpen(False, share)
- self.setxy(0, 0, share)
- self.setpen(True, share)
- self.tw.active_turtle.hide()
+ # Don't reset remote turtles
+ if not self.tw.remote_turtle(turtle_key):
+ self.set_turtle(turtle_key)
+ self.tw.active_turtle.set_color(0)
+ self.tw.active_turtle.set_shade(50)
+ self.tw.active_turtle.set_gray(100)
+ self.tw.active_turtle.set_pen_size(5)
+ self.tw.active_turtle.reset_shapes()
+ self.seth(0, share)
+ self.setpen(False, share)
+ self.setxy(0, 0, share)
+ self.setpen(True, share)
+ self.tw.active_turtle.hide()
self.set_turtle(self.tw.default_turtle_name)
self.tw.svg_string = ''
self.svg.reset_min_max()
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py
index 7068dc0..1342662 100644
--- a/TurtleArt/tawindow.py
+++ b/TurtleArt/tawindow.py
@@ -928,10 +928,8 @@ class TurtleArtWindow():
t = self.turtles.spr_to_turtle(spr)
if t is not None:
# If turtle is shared, ignore click
- if hasattr(self, 'turtle_dictionary'):
- if t.get_name() in self.turtle_dictionary and \
- t.get_name() != self.nick:
- return True
+ if self.remote_turtle(t.get_name()):
+ return True
self.selected_turtle = t
self.canvas.set_turtle(self.turtles.get_turtle_key(t))
self._turtle_pressed(x, y)
@@ -1342,12 +1340,21 @@ class TurtleArtWindow():
dy = y - dragy - sy
self.selected_turtle.spr.set_layer(TOP_LAYER)
self.selected_turtle.move((sx + dx, sy + dy))
+ if self.sharing(): # share turtle movement
+ self.send_event("x|%s" % (
+ data_to_string([self.selected_turtle.get_name(),
+ [round_int(sx + dx),
+ round_int(sy + dy)]])))
else:
dx = x - sx - self.active_turtle.spr.rect.width / 2
dy = y - sy - self.active_turtle.spr.rect.height / 2
self.canvas.seth(int(dragx + atan2(dy, dx) / DEGTOR + 5) / \
10 * 10)
self.lc.update_label_value('heading', self.canvas.heading)
+ if self.sharing(): # share turtle rotation
+ self.send_event("r|%s" % (
+ data_to_string([self.selected_turtle.get_name(),
+ round_int(self.heading)])))
# If we are hoving, show popup help.
elif self.drag_group is None:
@@ -1545,6 +1552,15 @@ class TurtleArtWindow():
if self.block_operation == 'click':
self._click_block(x, y)
+ def remote_turtle(self, name):
+ ''' Is this a remote turtle? '''
+ if name == self.nick:
+ return False
+ if hasattr(self, 'turtle_dictionary') and \
+ name in self.turtle_dictionary:
+ return True
+ return False
+
def _move_turtle(self, x, y):
""" Move the selected turtle to (x, y). """
(cx, cy) = self.canvas.canvas.get_xy()