Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pysamples/uturn.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2013-06-25 19:42:11 (GMT)
committer Walter Bender <walter@sugarlabs.org>2013-06-25 19:42:11 (GMT)
commit1be78ae1e76d5ecc5862edf4a96479f2995b3a74 (patch)
tree8df1b358d0da6e2624da3e669582a0b8b7cfcc3e /pysamples/uturn.py
parentf322249fb367a52e82de092ac8a3433320dacf3a (diff)
migrate to turtle-centric model
Diffstat (limited to 'pysamples/uturn.py')
-rw-r--r--pysamples/uturn.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/pysamples/uturn.py b/pysamples/uturn.py
index cdeb96d..fee9a29 100644
--- a/pysamples/uturn.py
+++ b/pysamples/uturn.py
@@ -1,4 +1,4 @@
-#Copyright (c) 2011, Walter Bender
+#Copyright (c) 2011-2013, Walter Bender
# This procedure is invoked when the user-definable block on the
# "extras" palette is selected.
@@ -11,6 +11,17 @@
def myblock(tw, arg):
''' Add a uturn block to the 'turtle' palette '''
+ # def_prim takes 3 arguments: the primitive name, the number of
+ # arguments -- 0 in this case -- and the function to call -- in this
+ # case, we define the _prim_uturn function to set heading += 180.
+ def _prim_uturn(tw):
+ value = tw.turtles.get_active_turtle().get_heading() + 180
+ tw.turtles.get_active_turtle().set_heading(value)
+ # We also update the label on the heading block to indicate
+ # the current heading value
+ if tw.lc.update_values:
+ tw.lc.update_label_value('heading', value)
+
from TurtleArt.tapalette import make_palette, palette_name_to_index
from TurtleArt.talogo import primitive_dictionary
from gettext import gettext as _
@@ -26,10 +37,14 @@ def myblock(tw, arg):
help_string=_('make a uturn'))
# Add its primitive to the LogoCode dictionary.
- tw.lc.def_prim('uturn', 0,
- lambda self: primitive_dictionary['set']
- ('heading', tw.canvas.seth, tw.canvas.heading + 180))
+ tw.lc.def_prim('uturn', 0, lambda self: _prim_uturn(tw))
# Regenerate the palette, which will now include the new block.
tw.show_toolbar_palette(palette_name_to_index('turtle'),
regenerate=True)
+
+ palette.add_block('uturn', # the name of your block
+ style='basic-style', # the block style
+ label=_('u turn'), # the label for the block
+ prim_name='uturn', # code reference (see below)
+ help_string=_('turns the turtle 180 degrees'))