[Newbies] Creating a coverflow effect in Squeak
bert at freudenbergs.de
Sat Jun 14 19:37:40 UTC 2008
On 14.06.2008, at 19:03, Ross Boylan wrote:
> On Sat, 2008-06-14 at 13:43 +0200, Bert Freudenberg wrote:
>> The path methods are a beautifully simple and useful, but they are
>> also a particularly bad example of Morphic programming.
> Does this mean that they could be done properly in Morphic? In other
> words, is the problem here with Morphic, or with this particular
> Or maybe it's just very difficult to do properly in Morphic?
It's more complicated - e.g., both definePath and followPath are
single methods now, done properly it would require at least a few
methods - setup, event handlers, stepping, cleanup ... the control
flow would be sprinkled across a few methods. This is typical of
almost any event-based UI, you typically would have a mouse-down
handler that sets up a few things, a mouse-move handler to collect the
path, and a mouse-up handler to gather the result. And these handlers
have to be enabled only while the path is recorded.
> I also have a more general question: if I'm not doing fancy animations
> or 3D effects, are there any particular benefits or drawbacks of using
Tweak has nothing to do with 3D, it is purely 2D. But for example, the
definePath or followPath methods could be implemented in a single
method with local control flow which is really nice to program.
- Bert -
> I was intrigued by some statements that Tweak has a clearer
> separation of model and the graphical/interactive part (View/
> in MVC). I definitely have separate model classes, and have found
> Morphic a bit awkward for that reason. It does have pluggable Morphs,
>> You may notice how the entire World stops while you define a path
>> (have a clock morph running to see this). Also it uses Sensor
>> directly, and calls displayWorld. Both big no-nos in proper Morphic
>> programs. The followPath method even does the actual animation in a
>> background thread. Really Bad Things can happen if you do that.
>> Tweak did set out to allow this kind of programming (because it is so
>> convenient), and it succeeded in that.
>> For the original question - if you want the actual cover flow effect
>> you need a 3D renderer. You could use Croquet and OpenGL for that,
>> it might be overkill. The Balloon3D render should be enough for this
>> simple type of animating.
>> If you can live with a pseudo-3D effect (like the carousel seen on
>> amazon.com frontpage) you can use simple 2D morphic animation of
>> course. In that effect, the covers always remain parallel to the
>> screen but only move position in a 3D circle so that they become
>> smaller in the back and larger in the front, and of course are sorted
>> back-to-front ...
>> In fact, that is so simple I couldn't resist to make an etoy version,
>> 4 lines of code :)
>> Uploaded as
>> - Bert -
More information about the Beginners