【プログラマじゃない人のためのFlashゲーム(Action Script)講座】

全講座(カテゴリ選択): ブログにあります(新規ウインドウ)
第5回: ブログにあります(新規ウインドウ) -2009/01/24更新
第4回: ブログにあります(新規ウインドウ) -2009/01/24更新
第3回: ブログにあります(新規ウインドウ) -2009/01/14更新
第2回: ブログにあります(新規ウインドウ) -2009/01/11更新
第1回:このページ-2009/01/04更新

プログラマではないけどFlashをやっていて、いつしかゲームを作りたいと思うようになった。
でも、プログラムはわからない、プログラマじゃないもん。って方への講座を開設しようかと思い
講座ページを始めました。えーと、、、こういう講座は初めてなので、お手柔らかに
見ていただきたいと思う次第であります…。
Flashに搭載されている言語、Action Script(アクションスクリプト)は本当に便利なものです。
ここを読む前に最低、Flashの一番大事な「シンボル」「インスタンス」「ボタン」「グラフィック」
「ムービークリップ」、「モーショントゥイーン」「シェイプトゥイーン」などの基本的な機能に
ついてはご自身で調べていただく必要があるかと思います…。この辺はすいません・・・。

当方の使用アプリケーションは【Flash MX】(Version 6)です。このヴァージョンでも
充分すぎるくらいのゲームを創ることが出来ます。ちなみに今(2009年1月)は数えで言えば
最新のFlashは10(CS4)がリリースされています。

2009/01/04 Gon-Fla.net管理人 ごんたろう
【まず、はじめに】
私はプログラマではありません。プログラムを重点的に勉強した人間ではありません。
専門学校でC言語の基礎の基礎…は授業で学びましたが、本当に基礎の基礎です。
プログラムは少しずつ慣れていけばいいのです。最初からものすごい複雑な
プログラムをダダダーっと書かなくて良いのです。ちょっとずつ確実に組んでいって
少しずつマスターしていくと言うことが大事です。ここ、大事です。必ず 【組む】という
作業が大事です。そしてわからなければ調べる。上手く動かなくても組む。
これをひたすら繰り返し、ちょっとずつ腕を上げていけば良いかと思います。

フラッシュのゲームプログラミングの本も多数出ております。それを参考にすれば
良いかと思いますが、なんせ今は説明書を読むための説明書、入門書を読むための
入門書が必要な書籍が多いです(笑)少しでもかみ砕いて説明できれば良いんですが…(-_-;)
自信はございません…。ごめんなさい。それを理解していただける方のみ御利用下さいませ。
それでは、始めてみようではありませんか…。

【第1章 プログラムとは?】09/01/04 更新

さて、プログラムとは何か?【命令】です。コンピュータからソフトウェアに
送る命令です。アクションゲームで言えば、←ボタンを押せば左へ移動、
このキーを押せばジャンプ、このキーを押せば攻撃、のような感じです。
これらはすべて命令、プログラミングされているのです。

【第2章 プログラムを日本語で書いてみる。】09/01/04 更新

さて、これはどういう意味でしょう?難しく考える必要はありません。
大事なことは頭の中で、あるいは紙の上で、日本語として命令を理解して
プログラムを組んでいくと言うことです。日本語で命令を書けないことには
実際にプログラムを組むことは不可能です。プログラムに強くなるためには
まず、日本語で命令をまとめることです。どうすればいいかって?

シューティングゲームで例えるとまず、プレイヤー(自機)、敵があることを想像します。
この時点でプレイヤー、敵の最低2個のオブジェクト(物体)が出てくることがわかります。
そして、キーボードの十字キー上を押したら、プレイヤーが上に移動…などを書きます。上下左右。
それから、任意で決めたボタン(スペースキーとか)を押すと、攻撃、別のボタンを押すと
スペシャルアタック(ボムなど)を撃つ。という風に。他にある物体に当たったらプレイヤーは
ミスとか、ライフが減るとか、そういう細かいところまで考える必要があります。

【第3章 Flashは便利ですよ】09/01/04 更新

Flashでプログラムを始めようとする人は少なくないはずです。とても良いと思います。
物を描き、シンボル化する、この基本的な操作をマスターすればだいぶ楽です。
特にムービークリップはアクションスクリプトを使って再生、ストップ、複製、移動など
様々なことが出来ます。ワクワクしてきませんか?

【第4章 1つずつコツコツと】09/01/04 更新

いきなり大規模なゲームを創るなんて考えないで下さい。一番最初は
プレイヤー的なものを造り、十字キーで動かせるものから始めましょう。
こういう一つ一つの積み重ねで必ずゲームは完成します。
焦らないで、これを怠るとゲームを創ることは出来ません。
真剣にゲームを創ると相当大変な作業なのですから……。

【第5章 ゲーム作りを始めてみよう】09/01/04 更新

え?いきなり?はい、ムービークリップ等のシンボル、インスタンスを多少でも
わかっていれば始めの一歩はそんなに難しいものではありません。
なにをやるかって、ある物体(プレイヤー)を作ってそれを上下左右に動かして
みると言うことをやってみましょう。

まず、最初にプレイヤーとなるものを作ります。Flashは便利です。最初から完成した
プレイヤーを書かなくてもいいのです。●や■、それで充分です。それをムービークリップの
シンボルに描く(変換)のです。そして、ステージのどこでもいいです、
今作った物体、プレイヤーを配置します。ここまでは大丈夫かな?

ムービークリップにはシンボル化し、インスタンスをステージに配置したときから
独自のプロパティ(設定値)を持っています。ん?わかりますか?ようするに、あなたに
身長、体重、生年月日、血液型、等があるようにムービークリップにはあらかじめ決められた
属性があるんです。たとえば今配置されている位置は縦???の横???という具合に数値で
物体の長さは○○pixel(ピクセル)とかね。で、物体を動かすときに必要なのは、今配置されている
位置、つまり「x」と「y」の値です。(数学で出てきましたよね…僕は数学苦手なのです)
xは横の位置、yは縦の位置を表します。Flashのステージの位置の基準は左上が0になります。
つまり、xが0、yが0の位置はステージの一番左上の角の部分に当たります。
xの値が増えると右に行き、ステージの一番右上の角はあらかじめ決めたステージの大きさの値に
なります。yの値は数が増えると下に行きます。xの値が最大値、yの値が最大値だとステージの
一番右下の角に配置されるのです。ここまではOKですか?

ムービークリップに設定されているプロパティの名称はすべて頭に「_」アンダーバーが
付いています。xの値を表すプロパティは「_x」yの値を表すプロパティは「_y」です。
-ここが大事-
横の位置(x)のプロパティは「_x」
縦の位置(y)のプロパティは「_y」
はい、ステージ上のキーフレームは1つだけと言うことを前提にします。
では、まず自分で動かす前にムービーを開始したら、物体が左から右へ動くという
スクリプトを組んでみましょう。左から右なのでxのプロパティを使用します。

プレイヤーのムービークリップを選択し、アクションのウインドウを開きます。
(右クリックでアクションか、メニュー「ウインドウ」のアクション)
アクションのウインドウの入力モードはデフォルトでは「ノーマルモード」になっています。
先のことを考えると「エキスパートモード」の方が良いので、アクションウインドウの
右上の小さなメニューアイコンからエキスパートモードを選択しましょう。

アクションウインドウの左には「アクション」や「演算子」などが書かれた
別のウインドウがあることがわかりますよね。では「アクション」の「ムービークリップ制御」を
開いてみましょう。その中に「onClipEvent」というのがあります。それをダブルクリックします。
すると、右のウインドウになにか入力され、またいくつかの項目を選択するウインドウが出ます。
この中から「enterFrame」を選びましょう。ダブルクリックです。
もし間違えたら、入力された文章(コード)を消してもう一度同じ作業をします。
するとonClipEvent(enterFrame){}のようになったかと思います。
この「enterFrame」とはフレームを実行する度にということです。
プレイヤーを書いたムービークリップ(通常なら1フレーム目にだけ)の1フレーム目が
ループされながら実行することは理解していただけますよね。
フレームが実行される度にアクションウインドウに書いたアクションも実行されます。
実行される度にというのが「enterFrame」です。これは基礎の基礎なので覚えておいて下さい。

さて、ここからです。日本語でプログラムを書こうじゃないか、ということです。
今回の目的は、プレイヤーのムービークリップがステージの左から右へ移動するという
スクリプトを組むことです。これは「フレームを実行する度に今現在の位置より少しずつ右へ
移動しろ」という命令を書かないといけません。右へ移動するということですが、先ほど上記に
かいた説明を理解していただければわかるかと思うのですが、xの値を加算(足す)するということに
なるのはおわかりいただけますか。単純に言えばx(_x)を+1するということです。
「+1する」というコードをenterFrameのコードの中({}の中)に書くとフレームが実行される度に
xを+1するという命令になります。ではかいてみましょうか?
_xに1加算ですが、「_x=_x+1」という書き方も正解なのですが、もっと簡単な書き方があります。
_xに1だけ加算する。「_x++」と書きます。「_x」にたす(+)を2つ「++」とつけます。
そうすると「_x=_x+1」と同じ命令になるのです。1加算するというスクリプトを書くときには
これが効果的です。覚えておきましょう。ちなみに1引く場合は--「_x--」となります。
これをさきほどの~enterframe~{}とかかれた{}の間に書きます。書いてみましょう。
最終的には「onClipEvent (enterFrame) {_x++}というふうになります。」これでいいのですが
一応、体裁をキレイにすると言う意味で、アクションウインドウの右のウインドウの上にある
7つのアイコンの右から2番目、カーソルを置くと「自動フォーマット」と表示されるボタンを
1回押します。はい。そうすると…

onClipEvent (enterFrame) {
_x++;
}

↑な具合になりましたよね?(位置がおかしいのは気にしないで下さいw)
これでムービーを実行するとプレイヤーとして作った物体が左から右へ移動するはずです。
とりあえず、今回はこの程度にしてぼちぼち、リクエスト等があればどんどん増やしていこうと
思いますが、不定期なもので…すみません。頑張ります。ご意見、ご要望などは BBS に書き込んで
いただけるとうれしいです。
-TOPページに戻る-