Hello Nacho,

It is even simpler as you seems to imagine.
First you don't need to subclass EllipseMorph if all you want is a ball,
then you don't need the position attribute, Morph always knows about
positionning.
Then, the #drawOn: method is to do the drawing, you don't need to
subclass as long as you don't need a different drawing. Color, border
should be set elsewhere.

The redbox with the cross appears in a Morph area when its drawing gets
wrong, here your override in drawOn:

For inspiration you can copy and paste the code example bellow; as you
mentioned animation, it shows you a few tips on that matter.

Good exploration

Hilaire


| aBall |
aBall := EllipseMorph  new.
aBall borderWidth: 10;
    borderColor: Color green;
    color: Color white;
    extent: 100@100.
aBall position: ( 10@100 ).
aBall openInWorld.
100 to: 50 by: -1 do: [ :x |
    aBall
        height: x;
        bottom: 200 - x.
    World doOneCycle]

Le 04/02/2015 19:00, nacho a écrit :
> Hi,
> I have the following question:
> I want to draw a bouncing ball.
> First thing I do is create a class:
>
> EllipseMorph subclass: #Ball
>       instanceVariableNames: 'position'
>       classVariableNames: ''
>       category: 'PBE-BouncingBall'
>
>
> Then an initialization method that mostly do a super initialize.
> Then the drawOn:  
>   
> drawOn: aCanvas
>       aCanvas borderWidth:10; borderColor: Color green.
>
>
> And finally a position method:
>
> position: aPoint
>       super position: aPoint.
>
> position
>       ^ position.
>
>
> Finally in a Playground I do:
>
> | aBall |
>
> aBall := Ball new.
> aBall position: ( 10@10 ).
> aBall openInWorld.
>
> But I get a red box with two crossing yellow lines.
> What I'm missing?
>
> Thanks in advance.
> Nacho
>
>
>
>
> -----
> Nacho
> Smalltalker apprentice.
> Buenos Aires, Argentina.
> --
> View this message in context: 
> http://forum.world.st/Question-on-Morphic-drawOn-method-tp4803695.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>


-- 
Dr. Geo - http://drgeo.eu
iStoa - http://istoa.drgeo.eu

Reply via email to