
ActionScriptで頑張ればFlashゲームは無料で作れる
クラスメソッド株式会社
吉村 美保
2008/6/12
編集部注:この連載をより深く理解するためには、記事「いまさら聞けない! FlashとActionScriptについて」も併せてご覧ください。
ActionScriptのコーディングでFlashゲームを作る
- - PR -
ActionScript 3(以下、AS3)の入門連載も今回で第6回になりました。前回の「ActionScript 3なら継承&実装で大規模開発もできる」までに、変数や制御文、クラスの概念、継承などについて説明してきましたね。どれもプログラミングには大事な知識でした。
今回は少し趣向を変えて、図形の描画ができる「Graphicsクラス」の解説をします。それと、特定のタイミングで処理を行うためのイベントの解説も少しだけしたいと思います。それらの知識を生かして、今回はちょっと楽しいゲーム・アプリケーションを作ってみましょう。
■ 福笑いFlashゲームを試してみよう
今回は、最終的に以下のような福笑いFlashゲームを作成します。それを踏まえて解説していきたいと思います。
![]() |
![]() |
| 福笑いFlashゲーム「Mr. Punks」 | |
- 各描画オブジェクト(髪の毛、顔、まゆ毛、目、鼻、口)が、ドラッグによる移動/回転をする福笑いアプリ
- マウスダウンにより髪の毛の色が変わる
以下で、実際に動かすことができるので、試してみてください。
| 福笑いFlashゲーム「Mr. Punks」(このまま動かせますが、実行にはFlash Playerが必要になります。Flash Playerのダウンロードページはこちら ) |
Flash描画の土台「Sprite」クラスとは?
前回までにもいくつか小さなプログラムを作成してきましたが、どれも「Spriteクラス」を「継承」していたと思います。連載第1回「Flashの要となるスクリプト言語『ActionScript』とは?」に出てきた「Lesson1.as」のコードの一部を見てみましょう。
| Lesson1.as(一部抜粋) |
public class Lesson1 extends Sprite { |
Lesson1クラスは、「extends」キーワードにより「Spriteクラス」を「継承」していますね。Spriteクラスのことを、連載第1回では「TextFieldクラスを載せるテンプレートのようなもの」と説明しましたが、具体的には「グラフィックスを表示でき、“子”オブジェクトを持つことができるクラス」といった感じです。
AS3において、SWFファイルを生成するためには、メインクラス(SWFに関連付けられた最初に呼び出されるクラス)がSpriteクラスを継承している必要があります。そして何かしらを画面に表示するには、「Spriteオブジェクト自体に描画する」か、「Spriteオブジェクトの“子”として描画オブジェクトを追加する」必要があります。
描画オブジェクトを“子”として追加するには、addChildメソッドを使います。連載第1回のコードでも、addChildは使われていましたね。
addChild(textField); |
こうすることで、文字が画面に表示されていました。
Flash描画メソッドがいっぱいの「Graphics」クラス
先ほど、「Spriteオブジェクト自体に描画する」と述べました。Spriteクラスは「graphics」というGraphicsクラスのオブジェクトを持っており、このgraphicsを使って図形を描画することができます。具体的に円を描画するサンプルを作ってみましょう。
| Lesson6_2.as |
package { |
【1】〜【3】はGraphicsクラスの描画に使用するメソッドです。
| 【1】drawCircleに対する塗りの指定、引数(color:塗りの色、alpha:透明度(1.0はデフォルト値)) |
beginFill( color:uint, alpha:Number = 1.0 ) |
| 【2】円の描画、引数(x/y:円の中心座標、radius:半径) |
drawCircle( x:Number, y:Number, radius:Number ) |
ここでいう「座標」とは、描画範囲の一番左上をx軸で0y軸で0としたものになります。
![]() |
| 図1 座標の捉え方 |
| 【3】塗りの終了 |
endFill() |
それでは、実行してみましょう。図2のように、半径50の赤い丸が60、80の位置に表示されました。
![]() |
| 図2 赤い円を表示 |
■ 円周に線を付けたい場合
円周に線を付けたい場合は、drawCircleの前にlinestyle()メソッドを呼び出します。
| 線のスタイル設定、引数(thickness:線の太さ、color:線の色、alpha:透明度)(一部) |
lineStyle( thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3 ) |
先ほどのコードのdrawCircleの前に、以下のコードを追加すると、円の外側に太さが3で色が白の線が描画されます。
graphics.lineStyle( 3, 0xffffff ); |
![]() |
| 図3 赤い円に白い縁取りを追加 |
■ Graphicsクラスには、ほかにもさまざまなメソッドが
Graphicsクラスには、ほかにもさまざまなメソッドが用意されているので、一部紹介したいと思います。
| 楕円の描画、引数(x/y:楕円の左上の座標、width:幅、height:高さ) |
drawEllipse( x:Number, y:Number, width:Number, height:Number ) |
| 描画位置の移動、引数(x/y:描画座標) |
moveTo( x:Number, y:Number ) |
| 現在の描画位置からx座標、y座標まで、線のスタイルを使用して線を描画、引数(x/y:線の終点座標) |
lineTo( x:Number, y:Number ) |
| 2次ベジェ曲線の描画、引数(controlX/controlY:コントロールポイントの座標、anchorX/anchorY:アンカーポイントの座標) |
curveTo ( controlX:Number, controlY:Number, anchorX:Number, anchorY:Number ) |
「2次ベジェ曲線」とは、アンカーポイント(曲線の端点)とコントロールポイント(曲線の量と方向を定義するポイント)の位置に基づいて曲線の形状が計算されるものです。曲線はコントロールポイントを通りませんが、コントロールポイントに引き付けられるようなカーブを描きます。
![]() |
| 図4 2次ベジェ曲線 |
これらの描画メソッドを使えば、いろいろな図形が描けそうですね。いよいよ次ページからは、福笑いFlashゲームを作り始めます。
| 1-2-3 |
| INDEX | ||
| Flashの基礎を無料で習得! ActionScript入門(6) ActionScriptで頑張ればFlashゲームは無料で作れる |
||
| Page1 ActionScriptのコーディングでFlashゲームを作る Flash描画の土台「Sprite」クラスとは? Flash描画メソッドがいっぱいの「Graphics」クラス |
||
| Page2 福笑いFlashゲームのコーディング開始! ゲームなので、マウスで動かせるようにしよう |
||
| Page3 オーバーライドの復習も 最終回は、とても大切な“エラー/例外”処理 |
||
| リッチクライアント&帳票 全記事一覧へ |
ホワイトペーパー(TechTargetジャパン)
- 画像を美しく魅せる効果を加えるjQueryプラグイン3選 (2010/3/17)
2つ重ねて比較するBefore/After、部分ごとに切り替えるpanelGallery、ズーム/カーテンなどができるcycle - 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |














