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