Line 541: |
Line 541: |
| The following feature is only available in versions 44+ of Turtle Art. | | The following feature is only available in versions 44+ of Turtle Art. |
| | | |
− | === myblock.py ===
| |
| | | |
| And a block that can be programmed by the Pippy interface: | | And a block that can be programmed by the Pippy interface: |
Line 554: |
Line 553: |
| | | |
| Examples: | | Examples: |
| + | def myblock(lc, x): |
| + | ########################################################################### |
| + | # |
| + | # Draw a dotted line of length x. |
| + | # |
| + | ########################################################################### |
| + | try: # make sure x is a number |
| + | x = float(x) |
| + | except ValueError: |
| + | return |
| + | if lc.tw.canvas.pendown: |
| + | dist = 0 |
| + | while dist+lc.tw.canvas.pensize < x: # repeat drawing dots |
| + | lc.tw.canvas.setpen(True) |
| + | lc.tw.canvas.forward(1) |
| + | lc.tw.canvas.setpen(False) |
| + | lc.tw.canvas.forward((lc.tw.canvas.pensize*2)-1) |
| + | dist += (lc.tw.canvas.pensize*2) |
| + | lc.tw.canvas.forward(x-dist) # make sure we have moved exactly x |
| + | lc.tw.canvas.setpen(True) |
| + | else: |
| + | lc.tw.canvas.forward(x) |
| + | return |
| + | |
| + | [[Image:TA-dotted-line.png]] |
| + | |
| + | You can pass a list of up to three arguments to tamyblock.py as in this example that converts the input to an rgb value. |
| | | |
| def myblock(lc, x): | | def myblock(lc, x): |
Line 580: |
Line 606: |
| return | | return |
| | | |
− | def myblock(lc, x):
| + | [[Image:TA-rgb.png]] |
− | ###########################################################################
| |
− | #
| |
− | # Draw a dotted line of length x.
| |
− | #
| |
− | ###########################################################################
| |
− | try: # make sure x is a number
| |
− | x = float(x)
| |
− | except ValueError:
| |
− | return
| |
− | if lc.tw.canvas.pendown:
| |
− | dist = 0
| |
− | while dist+lc.tw.canvas.pensize < x: # repeat drawing dots
| |
− | lc.tw.canvas.setpen(True)
| |
− | lc.tw.canvas.forward(1)
| |
− | lc.tw.canvas.setpen(False)
| |
− | lc.tw.canvas.forward((lc.tw.canvas.pensize*2)-1)
| |
− | dist += (lc.tw.canvas.pensize*2)
| |
− | lc.tw.canvas.forward(x-dist) # make sure we have moved exactly x
| |
− | lc.tw.canvas.setpen(True)
| |
− | else:
| |
− | lc.tw.canvas.forward(x)
| |
− | return
| |
| | | |
− | [[Image:TA-dotted-line.png]]
| |
| | | |
| def myblock(lc, x): | | def myblock(lc, x): |