Flashゲーム作成講座

初心者からクリエイター志望まで Flashゲームの作り方 入門

ゲームの作り方を初心者にも分かりやすく説明します。ゲームクリエイターを目指す方にも役立つ情報を。

関数と変数について

今まで、プログラミング言語の基礎的な話はできるだけ避けてきました。
初めからルールや理屈ばかりの説明では、ゲームを作って行こうというテンションが
下がってしまうと思ったからです。

しかし何といっても基礎は大切ですから、少しだけ説明します。

プログラムは大雑把にいうと
関数と変数で構成されています。

プログラム言語についての説明は、人によって変わると思いますが
関数とは処理を実行する仕組みそのものであり
変数とはデータを入れておく入れ物のようなものと言えます。

ゲームの構成は
絵やサウンド、それに入力制御(キーボードやマウス、画面タッチパネルなどの操作)
で成り立っていますが、これらを関数と変数を使って動かします。

ちょっと漠然とした話で、何を説明しているのか分かり辛いと思いますが
ここまでの話はさほど重要ではなく
関数と変数という言葉と意味をなんとなく理解できればいいと思います。
このあと、もう少し説明を続けますが細かい話はしません。
一度に覚えるのは大変なので、少しずつ勉強していきましょう。

 

関数の役割

関数とは、ActionScript言語として用意されているものと
ユーザーが独自に宣言して利用するものがあります。

ユーザーが関数を作るときの理由は、
一連の処理を1つにまとめて使えるようにするためです。
(ちなみに、関数を使うことを「関数を呼び出す」といいます)

なぜ、処理をまとめて関数として扱うのでしょうか?

大きな理由としては
・1つの長いプログラムを作るより、機能ごとに処理をまとめて関数化した方が
プログラムの処理の流れが見やすくなる

・同じ処理を何度も書くより、その処理を関数化して呼び出すほうが
プログラムの行数が少なくて済む
などがあります。

これは
「できるだけプログラミングで楽をしたい」
という思いから使われている手法なんです。
プログラムがシンプルで見やすければ、追加や変更も楽になりますし
バグが発生しても修正がやり易くなります。

プログラムを書く行数が減るということは、その分、作業時間が短くなり楽ができます。

 

もし「将来プログラマーになろう」と思っているのであれば
関数を作るとき、今後の作業が楽になるように意識して作成するようにしましょう。

 

変数のタイプ

変数はデータを入れておくものなのですが
そのデータがどんなタイプか宣言することができます。

ActionScript3.0 では宣言をしなくても使用できますが、宣言をすることにより
扱えるデータに制約が掛かります。

タイプを間違えて使った時はエラーとなるためバグが発見し易くなります
積極的にタイプの宣言をしましょう。

flash as3 変数のタイプとは

 

変数のスコープ

変数のスコープとは、有効範囲のようなものです。

プログラムは関数と変数で出来ていると先ほど説明しました。
この関数という仕組みを使うことで、見えない領域のようなものが発生します。

この性質は、使い方によっては便利に働き、逆に使い方を間違えるとバグの温床にもなります。

新規ドキュメントを作成し、次のプログラムを実行してみましょう。

var a:int = 100;
var b:int = 200;
var c:int = 300;

function disp_abc(){
   var a:int = 10;
   var b:int = 20;
   trace(a,b,c);
}

trace(a,b,c);    // 出力: 100 200 300
disp_abc();      // 出力: 10 20 300
trace(a,b,c);    // 出力: 100 200 300

 

注目する点は2つです。
① 11行目と13行目の出力結果が同じであることと
② 関数 disp_abc() 内では、変数 c の値が 300 であることです。

flash as3 変数のスコープの有効範囲

このことから、関数 disp_abc() の内部で宣言したものは
disp_abc() 内部でのみ有効なのが分かると思います。


flash as3 変数スコープの性質

このことから、関数内に宣言されていない変数は
有効な範囲内の変数から値を引っ張ってくるのが分かると思います。
(引っ張ってこれる変数が無い時には、コンパイルの段階でエラー)


気を付けないといけないのは、宣言するのを忘れた時です
有効な範囲に変数があれば、コンパイル時にエラーにならず
勝手に近くの変数を利用してしまうからです。
それを意識して利用しているならいいのですが、そうでない時
プログラムは思わぬように動いてしまいます。

上記の例のように
変数宣言をせずどこからか変数を借りてくるような使い方はやめましょう。
小規模なプログラムで間違えることはないと思いますが、規模が大きくなると
意図とは違った変数の使い方をすることが多くなるので気を付けましょう。

もう少し詳しく説明したいのですが、別の機会にします。
とりあえず、スコープという概念があることを覚えていてください。

 

次[ 自機を表示する ]へ進む