2012年4月1日日曜日

2.5 関数

久しぶりの更新です。
ごめんなさい、リアルの世界での仕事が忙しくて書く暇ありませんでした。

言い訳を書いても仕方ないので、さっそく続きといきましょうか。



今回は、関数(かんすう)を扱います。

中学や高校の数学でも、「関数」という言葉は出てくるので、初めて聞いたという人はいないのではないでしょうか。
「二次関数」とか、覚えてますか?

覚えてなくても問題ないです。



プログラミングにおいて、関数はとても重要な概念です。
これは、C#に限らず、他の言語でも同じです。

関数は、前回までで説明してきた 型 と同じくらい、重要です。



では、関数とはなんでしょうか。
別の言葉に置き換えてみると・・・・

・仕事

・機能

・アクション

こんなところでしょうか。



実際のプログラムにおいて、関数の具体的な役割を列挙すると以下のようなものがあります。

・<メッセージボックス> を 【出す】

・<画像> を 【表示する】

・<動画> を 【再生する】

・<ブラウザ> を 【起動する】



ゲームプログラムを扱うブログなので、ゲームプログラミング的な言葉で、
もっと具体的にいうと、以下のようなものが関数です。

・<アイテム> を 【拾う】

・<城> に 【ワープする】

・<モンスター> に 【攻撃する】

・<タイトル画面> に 【戻る】



上の例は、ユーザー視点でみた関数の例ですが、プログラマ視点では以下のようなものもあります。


・<敵キャラクター> の <ヒットポイント> を 【取得する】

・<プレイヤー> の <名前> を 【変更する】

・<プレイヤー> の <状態> を <死亡> に 【変更する】




さて、いくつか例を出しましたが、 【この部分】 が、関数にあたる部分です。
どれも、動詞の形をとっています。
つまり、関数は、何かの動作をするのです。


【表示する】 【拾う】 【変更する】・・・
いろいろありますが、これらはすべて関数です。



そして、<この部分>が、値になります。
覚えているでしょうか?値。


・<アイテム> を 【拾う】

この例では、<アイテム> が 値で、【拾う】 が 関数になります。



ゲームでは、常に何かに関数が働いています。

ゲームの時間を進めたり、プレイヤーが歩いたり、NowLoading画面が起動したり、
ヒットポイントを減らしたり、レベルが上がったり、ファンファーレを鳴らしたり・・・

これらすべて、関数が仕事をしているのです。



ゲームプログラマは、ゲームの世界を、値と関数で構築していきます。
いわば、ゲームプログラムは値を関数の集合です。
関数がないと、画面に絵も出せませんし、文字すら出せません。



ただし!
値と関数だけでは、ゲームプログラムはできません。
足りない要素はまだまだあります。

これから、その要素を見ていきましょう。





ということで、今回はここまで。
とりあえず、関数とはなんぞや?という解説でした。