こんにちわ。このサイトってこういうテーマを掲げてたことをさっき思い出しました。
今日も西日がまぶしいbeshinです。
皆さんは「パーティクル祭り」をご存知ですか?
少し前にWonderflというサイトで盛り上がったのが記憶に新しいです。そんな祭りにすっかり乗り遅れて遠目で見守っていたのですが、少し時間ができたのでいろいろな人が書いたコードをみて勉強してみました。
普通FLASHとかで複数のオブジェクトを動かす場合って、配列とかFP10とかだったらVectorとか使うと思うのですが、どうやらlinked List?(あんまりわかってない)というのを使ってるみたいです。大昔に読みかけてそのまま枕にしてしまった、(ほんとうにすみません)デザインパターン入門本に書いてたイテレータパターン?(あんまりわかってない)ってやつなんですかね?こういう風に使うんですね。
というわけで、僕もつくってみました。画像は僕のTwitterアイコンです。基本的に自分大好きなんです。
コード汚いですね。すみません。
流れ的には、
- 画像を読み込んで、1pxずつgetPixelで解析してPerticleオブジェクトにし、linked Listを形成する。
- マウスの動きに合わせて、setPixelする。while ((p = p.next) != null) っていうのが速いみたい。
- クリックすると、はじまります。もう一度クリックするとちょいエフェクトかかります。
Wonderflはじめて触りました。
ローカルで実験してたので、あれだけど、こういう場合FORK?するのが正しいんですね。すみません。
どうでもいいですが、「パーティクル」で変換すると「パーティ来る」とセレブな変換が行われるので、おもわず「行く行くー!」と言いそうになります。
わたし、何かが分かった気がしたんです。
ある日の、ラーメン屋での出来事。
今日はクタクタで家に帰ってもメシを作る気がしない。
そんなときは家の近くのラーメン屋で夕飯を済ますのですが、
ラーメンをすすっている時に「はっ」と気が付いてしまったんです。
「も、もしやこのラーメンに入ってる刻みネギは、ネギを拡張したものではないか!」
「も、もしやこのラーメンに入ってる麺は、小麦粉を拡張したものではないか!」
「も、もしやこのラーメンに入ってるチャーシューは、豚肉を拡張したものではないか!」
とね。。
職業柄プログラムを触らせて頂く機会が増える一方で、
自分の作るロジックにため息しか出ない日々が続いておりました。
「なぜ、俺の作るプログラムはこうもイケてないんだ!」
プログラムの世界にはオブジェクト指向というものがありまして、
自分なりに参考書を読んで勉強してきていたのですが、
なかなか身になっている気がしませんでした。
そんな折、ラーメン屋での出来事があり、
もう少し理解を深めたいと思い今回の記事を書こうと自主的に申し出た所存でございます。
———————————————————————————-
さて、今回のお題は「ラーメンとオブジェクト指向」でございます。
例として、ユーザーさんがボタンを押すとラーメンが出てくる、
というインスタントラーメン屋を想定してプログラムを組んでいきます。
■制作環境
- ・Windows XP
- ・FlashDevelop
- ・flex_sdk_4.0.0.4904
■構成
ラーメンの構成は簡略化して考えていきたいと思います。
細かいことは気にしない。
この三つで今回のオブジェクトラーメンは出来ております。
だがしかし、麺は小麦粉を原材料として作られ、
チャーシューは豚肉からできる。
プログラム的に言うと、
麺は小麦粉を拡張し、チャーシューは豚肉を拡張している。
さらに刻みネギは、ネギを拡張しているというふうに言えると思います。
という考えのもと、以下のファイル構成にしております。

すべての元になるクラスたちが「shokuzai」フォルダー。
その食材から作られる具や麺たちは「proccessed」フォルダーへ。
さらに、それらを組み合わせて作られるラメーンを「menu」フォルダーへ構成しました。
それらに簡単なアニメーションをつけたのがこちら!
かなり不完全ではありますがソースも置いておきます。
よろしかったら使ってみてください。
■ラーメン ダウンロード
ramen