[Newbies] Drawing a line on a morph
Christine Wolfe
cwdw01 at earthlink.net
Fri Oct 30 18:35:28 UTC 2009
Thank you so much for the information about the . instead of , and for the
aPointPair first to aPointPair last. They look like they are going to be a
big help.
When I made the changes, I received the following error message with either
of the workspace instructions shown below.
MyMorph(Object)>>doesNotUnderstand: [] in MyMorph>>drawOn: {[:aPointPair |
self drawLineOn: aCanvas from: aPointPair first to: aPo...]}
This is my current code:
In Workspace I type:
(MyMorph faces: 2) openInWorld
Or
MyMorph new openInWorld
My messages are:
initialize
super initialize.
"taken directly from SBE"
self extent: 50 at 50.
self useGradientFill; borderWidth: 2; useRoundedCorners.
self setBorderStyle: #complexRaised.
self fillStyle direction: self extent.
self color: Color green.
dieValue := 1.
faces := 6.
isStopped := false.
and
drawOn: aCanvas
super drawOn: aCanvas.
(self perform: ('face', dieValue asString) asSymbol)
perform: [:aPointPair | self drawLineOn: aCanvas from: aPointPair first to:
aPointPair second]
and
drawLineOn: aCanvas from: aPoint to: anotherPoint
aCanvas
line: aPoint to: anotherPoint width: 2 color: Color black.
And
face1
{{2 at 2. 2 at 10}. {2 at 2. 10 at 2}. {10 at 10. 2 at 10}. {10 at 10. 10 at 2}}
And
face2
{{2 at 2. 2 at 10}. {2 at 2. 10 at 2}. {10 at 10. 2 at 10}. {10 at 10. 10 at 2}}
-----Original Message-----
From: beginners-bounces at lists.squeakfoundation.org
[mailto:beginners-bounces at lists.squeakfoundation.org] On Behalf Of Bert
Freudenberg
Sent: Friday, October 30, 2009 2:00 PM
To: A friendly place to get answers to even the most basic questions about
Squeak.
Subject: Re: [Newbies] Drawing a line on a morph
On 30.10.2009, at 11:52, Christine Wolfe wrote:
> drawOn: aCanvas
> super drawOn: aCanvas.
> (self perform: ('face', dieValue asString) asSymbol)
> do: [{:aPoint, anotherPoint} | self drawLineOn: aCanvas from: aPoint
> to: anotherPoint]
In my version of Squeak this won't even compile.
How did you accept that method?
The curly-bracket array notation can not be used to extract multiple
arguments. Instead, you would have to do something like this:
[:aPointPair | self drawLineOn: aCanvas from: aPointPair first to:
aPointPair second]
And secondly, this expression is valid syntactically but does not do
what you might expect:
> face1
> ^{{2 at 2, 2 at 10}, {2 at 2, 10 at 2}, {10 at 10, 2 at 10}, {10 at 10, 10 at 2}}
In non-literal Array notation, expressions must be separated by
periods, not commas:
{{2 at 2. 2 at 10}. {2 at 2. 10 at 2}. {10 at 10, 2 at 10}. {10 at 10. 10 at 2}}
The way you would verify a line like this or your's above is you
simply select it and press cmd-p so it will print the result. You can
do this in any browser or workspace.
- Bert -
_______________________________________________
Beginners mailing list
Beginners at lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners
More information about the Beginners
mailing list