diff options
author | Walter Bender <walter@sugarlabs.org> | 2013-06-25 19:42:11 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2013-06-25 19:42:11 (GMT) |
commit | 1be78ae1e76d5ecc5862edf4a96479f2995b3a74 (patch) | |
tree | 8df1b358d0da6e2624da3e669582a0b8b7cfcc3e /pysamples/uturn.py | |
parent | f322249fb367a52e82de092ac8a3433320dacf3a (diff) |
migrate to turtle-centric model
Diffstat (limited to 'pysamples/uturn.py')
-rw-r--r-- | pysamples/uturn.py | 23 |
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')) |