So, I have the following script:
script5 (myPlayer costume renderedMorph isKindOf: BookMorph) ifTrue: [self beep: 'croak'] ifFalse: [(myPlayer costume renderedMorph ownerThatIsA: BookMorph) ifNil: [self beep: 'chomp'] ifNotNil: [self beep: 'croak']]
It will "croak" if I click on a BookMorph or any object contained inside the BookMorph. So far so good.
Now how go I set my *myPlayer* variable to the BookMorph in its "owner chain" (if that's the common terminology)?
Stephen
On Mon, Apr 4, 2011 at 1:09 PM, Scott Wallace scott.wallace@squeakland.orgwrote:
On Apr 4, 2011, at 7:09 AM, Bert Freudenberg wrote:
On 04.04.2011, at 15:20, Steve Thomas wrote:
How can I detect if a player variable is a book object? (sometimes it is
hard to click on the book and if you get another object and try to run the script an exception is thrown).
(var costume class isKindOf: BookMorph) ifTrue: [...]
This should be simply
(var costume isKindOf: BookMorph) ifTrue: [...]
i.e. the "class" shouldn't be there.
Also, for completeness, perhaps the "best" version would be:
(var costume renderedMorph isKindOf: BookMorph) ifTrue: [...]
... because this will work even if the BookMorph has been rotated ;-)
Cheers,
-- Scott _______________________________________________ squeakland mailing list squeakland@squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland