[Squeakland] scripted drawing as an object?
Bert Freudenberg
bert at impara.de
Thu May 26 02:54:32 PDT 2005
Am 25.05.2005 um 21:09 schrieb Randy Heiland:
> Hi Squeakers,
>
> In Etoys, can I make some drawing that was the result of a script
> become an
> object? For example, consider the simple circle-drawing script
> (fwd by,
> turn by, pen down). Can I somehow treat that resulting circle as
> an object
> and thereby make copies of it, etc? I realize that I could use
> either the
> 'Grab Patch' or 'Lasso' in the Supplies to manually "select" the
> circle,
> however that approach of course gives me more pixels than I really
> want.
Hi Randy,
this is not quite possible out-of-the-box, as far as I know. However,
nothing is impossible in Squeak ;-)
Here's what you can do:
1. Make a new playfield.
2. Place your drawing player in the playfield.
3. Let it draw.
4. Set the playfield's graphic to the drawn pen trails.
5. Make a new sketch.
6. assign the playfield's graphic to the sketch's graphic.
7. You're done :-)
Now that seems straight-forward, but unfortunately there is no
"setGraphicFromTrails" tile that we need for step 4. We'll need a
bit of magic. Here is how to make that tile:
4a. Get a viewer on the playfield.
4b. From the "playfield" category, drag out the arrow tile for
"playfields graphic", making a script.
4c. Rename the script to "setGraphicFromTrails".
4d. Switch the script to textual mode (click the square checkbox in
the upper left of the script)
4e. Replace the text shown there:
=====================
setGraphicFromTrails
self setGraphic: Form3
=====================
with the following (just copy and paste):
=====================
setGraphicFromTrails
self setGraphic: ((self costume instVarNamed: #turtleTrailsForm)
ifNotNilDo: [:f | f trimBordersOfColor: Color transparent])
=====================
Accept using Cmd-s (Alt-s on PC).
4f. Hide the script with the "o" button.
4f. In the playfield's scripts category you'll find your shiny new
"setGraphicFromTrails" tile.
For step 6, you could make a skript for the sketch like this:
Playfield setGraphicFromTrails
Sketch's graphic <- Playfield's graphic
I think this might be a valuable feature to add generally - that is,
making the pen trail's graphic available as a tile. Maybe for the
next etoys version.
- Bert -
More information about the Squeakland
mailing list