Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tawindow.py
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2010-01-27 21:28:29 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2010-01-27 21:28:29 (GMT)
commit8ee1d89d6fa222fbd0f7ed0ab75b2a65103a350c (patch)
tree3d83e41f7874a588041499f1b769e4de0a782638 /tawindow.py
parentf0330df08bec4aa9eb7d9bca6e4ef927ee5b1f36 (diff)
multi-turtle support
Diffstat (limited to 'tawindow.py')
-rw-r--r--tawindow.py39
1 files changed, 21 insertions, 18 deletions
diff --git a/tawindow.py b/tawindow.py
index aff0a83..0abe047 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -143,9 +143,11 @@ class TurtleArtWindow():
self.drag_group = None
self.block_list = block.Blocks()
self.sprite_list = sprites.Sprites(self.window, self.area, self.gc)
- self.turtle_list = taturtle.Turtles()
+ self.turtle_list = taturtle.Turtles(self.sprite_list)
+ self.turtle = taturtle.Turtle(self.turtle_list)
self.selected_turtle = None
- self.turtle = tNew(self,self.width,self.height)
+ self.canvas = TurtleGraphics(self, self.width, self.height)
+
self.lc = lcNew(self)
"""
@@ -222,7 +224,7 @@ class TurtleArtWindow():
blk.spr.set_layer(BLOCK_LAYER)
self.show_palette()
self.hide = False
- self.turtle.canvas.inval()
+ self.canvas.canvas.inval()
"""
hideshow_palette
@@ -480,7 +482,7 @@ class TurtleArtWindow():
dx, dy = mdx, mdy
else:
dx, dy = x-sx-30, y-sy-30
- seth(self.turtle, int(dragx+atan2(dy,dx)/DEGTOR+5)/10*10)
+ self.canvas.seth(int(dragx+atan2(dy,dx)/DEGTOR+5)/10*10)
# If we are hoving, show popup help.
elif self.drag_group is None:
self._show_popup(x, y)
@@ -837,12 +839,12 @@ class TurtleArtWindow():
print "processing remote button release: %d, %d" % (x, y)
# We may have been moving the turtle
if self.selected_turtle is not None:
- (tx, ty) = self.turtle.spr.get_xy()
- self.turtle.xcor = tx-self.turtle.cx- \
- self.turtle.canvas._width/2+30
- self.turtle.ycor = self.turtle.canvas._height/2-ty+ \
- self.turtle.cy-30
- move_turtle(self.turtle)
+ (tx, ty) = self.canvas.spr.get_xy()
+ self.canvas.xcor = tx-self.canvas.cx- \
+ self.canvas.canvas._width/2+30
+ self.canvas.ycor = self.canvas.canvas._height/2-ty+ \
+ self.canvas.cy-30
+ self.canvas.move_turtle()
display_coordinates(self)
self.selected_turtle = None
return
@@ -983,7 +985,8 @@ class TurtleArtWindow():
Is x,y over the trash can?
"""
def _in_the_trash(self, x, y):
- if self.selected_palette == TRASH and self.palette_spr.hit((x,y)):
+ if self.selected_palette == TRASH and \
+ self.palette_sprs[TRASH].hit((x,y)):
return True
return False
@@ -1072,10 +1075,10 @@ class TurtleArtWindow():
Turtle pressed
"""
def _turtle_pressed(self, x, y):
- (tx, ty) = self.turtle.spr.get_xy()
+ (tx, ty) = self.canvas.spr.get_xy()
dx, dy = x-tx-30, y-ty-30
if dx*dx+dy*dy > 200:
- self.dragpos = ('turn', self.turtle.heading-atan2(dy,dx)/DEGTOR, 0)
+ self.dragpos = ('turn', self.canvas.heading-atan2(dy,dx)/DEGTOR, 0)
else:
self.dragpos = ('move', x-tx, y-ty)
@@ -1149,12 +1152,12 @@ class TurtleArtWindow():
"""
def _jog_turtle(self, dx, dy):
if dx == -1 and dy == -1:
- self.turtle.xcor = 0
- self.turtle.ycor = 0
+ self.canvas.xcor = 0
+ self.canvas.ycor = 0
else:
- self.turtle.xcor += dx
- self.turtle.ycor += dy
- move_turtle(self.turtle)
+ self.canvas.xcor += dx
+ self.canvas.ycor += dy
+ self.canvas.move_turtle()
display_coordinates(self)
self.selected_turtle = None