How to make a screen saver

Mac OS X 10.0 では、スクリーンセイバーが標準で用意されているよね。そのフレームワークである、ScreenSaver.frameworks は API が公開されているんだ。これが何を意味するか?っていうと、どの Mac OS X にも標準でインストールできるスクリーンセイバーを作れるっていうことなんだ。
さらにさらに、Mac OS X には標準で Developer Tool CD がついてくるではないか。ということは、Mac OS X を買った人なら、だれでもスクリーンセイバーが作れるんだ(もちろん作れる手段があるということだ)。じゃ、ちょっとやってみようか?
スクリーンセイバーのプログラミングは、実はそんなに難しくない。フレームワークがきっちり出来上がっているから、絵を描くところだけ、ちょいちょい、って作ってやればいいんだ。もちろん、簡単とは言い難いよ。なにしろ Objective-C でプログラムを組まなきゃいけない。Objective-C のプログラマって何人いるんだ?でも Hyper Talk ならいじったことある人いるでしょ。あれならなんとかなったでしょ。だから、見たことがないプログラミング言語だからといって、かまえることはない。もちろん、Hype Talk と Objective-C の間には天と地ほどの差があるといっても言い過ぎではないが(言い過ぎか?)。
まぁ、そんなにいろいろ考えずに、とりあえず動かしてみようじゃないか。と、いうわけで、この Special Issue の目的は、スクリーンセイバーを一から作ってみることです。プログラミング入門にはいい題材だと思うんだよね。プログラミングの経験がない人でもだいじょうぶ。きっと、ものを作って動かす喜びがよみがえると思いますよ。
スクリーンセイバーをつくろう
- ScreenSaver.frameworks の API
-
ScreenSaverView.h
- backingStoreType
- performGammaFade
- initWithFrame
- animationTimeInterval, setAnimationTimeInterval
- startAnimation, stopAnimation, isAnimating
- drawRect, animateOneFrame
- hasConfigureSheet, configureSheet
- isPreview
- SSRandomIntBetween, SSRandomFloatBetween
- SSRandomPointForSizeWithinRect
- SSCenteredRectInRect ScreenSaverDefaults.h
- defaultsForModuleWithName