2012年4月1日日曜日

2.5 関数

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

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



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

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

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



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

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



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

・仕事

・機能

・アクション

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



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

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

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

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

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



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

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

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

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

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



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


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

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

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




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


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



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


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

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



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

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

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



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



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

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





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

12 件のコメント:

  1. とてもわかり易くて助かってます^^

    返信削除
  2. コメントありがとうございます。
    わかりやすい・・・でしょうか?
    内容がやや抽象的すぎるかなーどうかなーって思っているので。
    もうそろそろ、Unit+C#プログラミングにいけるかと思います。

    返信削除
  3. 続きはかかれないんですか??
    ぜひ書いていただきたいです。

    返信削除
  4. ぜひ続きをお願いしたいです!

    お忙しいでしょうが、応援してます。

    返信削除
  5. ぱぱっと読ませていただきました。とっつきやすい説明で助かります。
    がんばってください。

    返信削除
  6. ここで終わっているのは残念ですが、
    プログラムの「それがいったい何になるの?」
    という部分が少し分かったので助かりました。

    返信削除
  7. 本日はじめて読ませていただきました。とてもわかりやすく、やっと勉強の入り口のドアが見つかったかな?という感じです。
    続きがあったら嬉しいですが、さわりだけでも本当に助かりました。ありがとうございました!

    返信削除
  8. とてもわかりやすいです。デザイナーですが、Unityでゲームを作るために必要なスクリプトという未知の分野に戸惑っていました。上の方も言うようにやっと入り口が見つかった感じがします。ありがとうございます!

    返信削除
  9. 説明がまわりくどくて、読んでて疲れる
    なかなか核心に届かない

    返信削除
  10. ひと通り読みましたが、型と値の部分でなるほど!と衝撃を受けました。
    すごくわかりやすいです。続きを是非希望したいです。

    返信削除
  11. 見やすいしわかりやすいです、更新して欲しいです

    返信削除
  12. けっこう分かり易かった。取りあえずちょうちょう入門として助かりました。負担にならない程度に木か向けばいつでも更新してね

    返信削除