<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; MovieClip</title>
	<atom:link href="http://www.game-create.com/archives/tag/movieclip/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>継承ツリーが長くならないようなアプローチが必要かも</title>
		<link>http://www.game-create.com/archives/1995</link>
		<comments>http://www.game-create.com/archives/1995#comments</comments>
		<pubDate>Thu, 23 Jul 2009 16:15:01 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オリジナルゲーム制作]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[DisplayObjectContainer]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[クラス]]></category>
		<category><![CDATA[継承]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1995</guid>
		<description><![CDATA[Flash アニメーションが作りやすくて、なんとかこの作りやすさを C++ でもと参考にしてゲームを作っているのですが、やはり継承ツリーの長さが気になります。

ゲームの基本的な要素である Sprite と Flash  [...]]]></description>
			<content:encoded><![CDATA[<p>Flash アニメーションが作りやすくて、なんとかこの作りやすさを C++ でもと参考にしてゲームを作っているのですが、やはり継承ツリーの長さが気になります。</p>
<p><span id="more-1995"></span></p>
<p>ゲームの基本的な要素である Sprite と Flash の基礎的な要素である MovieClip までの継承ツリーを見てみると次のようになります。</p>
<table class="style-1">
<caption>MovieClip の継承関係（上が基底クラス）</caption>
<tr>
<th>Object</th>
<td>全てのオブジェクトの祖。</td>
</tr>
<tr>
<th>EventDispatcher</th>
<td>イベントを受け取ったり、送出したり、ラジバンダリできるようになる。</td>
</tr>
<tr>
<th>DisplayObject</th>
<td>Flash ムービーとして表示するのに必要な情報が管理できるようになる（大きさとか座標とか回転度とか不透明度とか）。</td>
</tr>
<tr>
<th>InteractiveObject</th>
<td>マウスやキーボードに反応できるようになる。</td>
</tr>
<tr>
<th>DisplayObjectContainer</th>
<td>DisplayObject をツリー状に内包できるようになる。知らなかったけどゲームを作るのに便利なパターンらしい。</td>
</tr>
<tr>
<th>Sprite</th>
<td>実際に Flash ムービーの画面に表示できるようになる（これより前の表示関連のクラスは抽象クラス）。</td>
</tr>
<tr>
<th>MovieClip</th>
<td>タイムラインを持った Sprite 。これなくして Flash はないが、 Flash なくしてこれはない、というのは言い過ぎ。</td>
</tr>
</table>
<p>長いです。そして、表現する物によっては要らない機能もあります。たとえばダッシュして巻き上げた砂のエフェクトなんかがイベントを送出したり受け取ったりできる必要はありません。ゲームによってはひとつひとつの表示オブジェクトが入力を受け付ける機能が不要になることも多いかと思います。</p>
<p>インタフェースによる代表的な実装を持つオブジェクトへの委譲などで、ひとつひとつのオブジェクトを軽量化できないか検討が必要のようです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1995/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ゲームの土台がだんだん Flash っぽくなってきてます</title>
		<link>http://www.game-create.com/archives/1789</link>
		<comments>http://www.game-create.com/archives/1789#comments</comments>
		<pubDate>Sat, 06 Jun 2009 16:10:28 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オリジナルゲーム制作]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[クラス]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1789</guid>
		<description><![CDATA[命大事にしつつガンガンいろいろがんばって呪文節約しながらゲームを作っております。

ゲームというソフトウェアを作るためのプログラム構築方法には、実に多くのバリエーションがあるということなど今更言う必要もないと思います（で [...]]]></description>
			<content:encoded><![CDATA[<p>命大事にしつつガンガンいろいろがんばって呪文節約しながらゲームを作っております。</p>
<p><span id="more-1789"></span></p>
<p>ゲームというソフトウェアを作るためのプログラム構築方法には、実に多くのバリエーションがあるということなど今更言う必要もないと思います（でも、本当は言った方が良いような気もします）。</p>
<p>最近、インタラクティブに動くコンテンツの制作手法として Flash の実績が見過ごせなくなってきました。つまり、「 Flash の手法ってゲームが作りやすいなぁ」ということです。思わず、今、作っているゲームのクラス階層が ActionScript のそれに近くなってしまいました。</p>
<p>ただ、 ActionScript は「肥大化した MovieClip を再分析する」という歴史があるのを忘れてはならないと思います。つまり、今、ゼロから ActionScript を構築したら、同じクラス階層になるのかという視点が重要なのでは無かろうかということです。</p>
<p>自分のゲームに取り込んで良い物か悩みます。でも、作りやすいです。次のゲームが 2D だからなおさら悩むのかもしれません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1789/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>どうしても次のバージョンの Flash が欲しくなりました</title>
		<link>http://www.game-create.com/archives/1328</link>
		<comments>http://www.game-create.com/archives/1328#comments</comments>
		<pubDate>Mon, 16 Feb 2009 13:25:50 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Adobe CS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1328</guid>
		<description><![CDATA[仕事で Flash を使って簡単な 3D 表現をしたいというお話しになったのですが、 Flash には Matrix クラスもありますし、シェイプトゥイーンのような変形機構もあるので、ラスタライザもどきも簡単に作れるだろ [...]]]></description>
			<content:encoded><![CDATA[<p>仕事で Flash を使って簡単な 3D 表現をしたいというお話しになったのですが、 Flash には Matrix クラスもありますし、シェイプトゥイーンのような変形機構もあるので、ラスタライザもどきも簡単に作れるだろうと思っていました。…が、実際には最新版ではないと面倒なようです。</p>
<p><span id="more-1328"></span></p>
<p>古いバージョンでも座標変換までは問題なく進むのですが、最後に絵を表示する段階で任意座標の矩形を描画することができません。やるとすると 3D 系のライブラリを使うか、本当に三角形に分離してポリゴンを扱うかのように処理する必要がありました（解説サイトを失念、無念です…）。</p>
<p>最新版では事情が変わって 3D もだいぶやりやすくなっているようです。ただ、カリングや深度チェックまで考えるとたぶん外部のライブラリが必要かと思われます。</p>
<p>Adobe CS4 買って確かめたいですね。あの価格なんとかならないでしょうか…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1328/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash のモーション XML のリファレンスを発見</title>
		<link>http://www.game-create.com/archives/1308</link>
		<comments>http://www.game-create.com/archives/1308#comments</comments>
		<pubDate>Mon, 09 Feb 2009 15:32:38 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1308</guid>
		<description><![CDATA[Flash のモーションデータが出力できることはすでにわかりましたが、これのリファレンスを見つけました。 Flash の製品版をお持ちの方は「モーション XML エレメント」で検索、お持ちでない方は下記 URL へアクセ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.game-create.com/archives/1256">Flash のモーションデータが出力できる</a>ことはすでにわかりましたが、これのリファレンスを見つけました。 Flash の製品版をお持ちの方は「モーション XML エレメント」で検索、お持ちでない方は下記 URL へアクセスください。</p>
<p><a href="http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/motionXSD.html" class="external">モーション XML エレメント</a></p>
<p><span id="more-1308"></span></p>
<p>アニメーションする対象は MovieClip だけではなく、四角形などのジオメトリ情報でも問題ないようです。これはいろいろと使えそうですね。いえ、かなり嬉しいですよ。 2D のゲームを作る人は Flash の製品版を持っておくとデータ入力とか楽になるかもしれません。これは研究の余地有りかと思われます。</p>
<p>問題は階層構造の表現方法ですよね。今の段階だとひとつひとつタイムラインを選択して出力するしか方法がありません。うーむ、なんとかしたいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1308/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>画像のアルファ値に関するトリビア</title>
		<link>http://www.game-create.com/archives/1253</link>
		<comments>http://www.game-create.com/archives/1253#comments</comments>
		<pubDate>Mon, 26 Jan 2009 11:19:47 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1253</guid>
		<description><![CDATA[トリビアってほどでもないのですが、アルファ値って「不透明度」のことだったんですね。「透明度」って解釈していることが多くありました。

たしかに Flash とかで 100% 不透明な MovieClip はアルファ値が  [...]]]></description>
			<content:encoded><![CDATA[<p>トリビアってほどでもないのですが、アルファ値って「不透明度」のことだったんですね。「透明度」って解釈していることが多くありました。</p>
<p><span id="more-1253"></span></p>
<p>たしかに Flash とかで 100% 不透明な MovieClip はアルファ値が 100 です。数値を下げる毎に透明度が増してくるということは、アルファ値＝不透明度ということですよね。</p>
<p>こういう、「間違って覚えているやつが多いけど実は」的なお話しって面白いですよね。 CSS の float 属性とかも熱い議論を呼びそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1253/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>初心者が Flash でゲームを作る際に注意すること</title>
		<link>http://www.game-create.com/archives/342</link>
		<comments>http://www.game-create.com/archives/342#comments</comments>
		<pubDate>Wed, 30 Apr 2008 14:18:21 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=342</guid>
		<description><![CDATA[Flash で ActionScript を使っているときに気をつけていることをメモしておきます。


モーショントゥイーンを使いたい場合は、ひとつのレイヤーにひとつの MovieClip を置く
下手にゲームループを実 [...]]]></description>
			<content:encoded><![CDATA[<p>Flash で ActionScript を使っているときに気をつけていることをメモしておきます。</p>
<p><span id="more-342"></span></p>
<ul>
<li>モーショントゥイーンを使いたい場合は、ひとつのレイヤーにひとつの MovieClip を置く</li>
<li>下手にゲームループを実装するくらいなら Event.ENTER_FRAME を検討する</li>
<li>通信は非同期なので Event.COMPLETE で完了を待つ</li>
<li>MovieClip.gotoAndPlay() で無限ループを作りたいときはひとつ前のフレームを指定する</li>
<li>フレームアクションの関数外で宣言した変数は MovieClip のフィールドになるので、デバッグするときは this の中を探す</li>
</ul>
<p>自戒です。はい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/342/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash でスパロボは楽には作れないらしいです…</title>
		<link>http://www.game-create.com/archives/242</link>
		<comments>http://www.game-create.com/archives/242#comments</comments>
		<pubDate>Thu, 31 Jan 2008 15:57:20 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[スパロボ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=242</guid>
		<description><![CDATA[メインの SWF からアニメーション用の SWF を読み込んで、その中に敵キャラの MovieClip を登録しようと思ったのですが、「そのメソッドは未実装です」というエラーに遭遇してうまくいきません。
ヘルプをあさって [...]]]></description>
			<content:encoded><![CDATA[<p>メインの SWF からアニメーション用の SWF を読み込んで、その中に敵キャラの MovieClip を登録しようと思ったのですが、「そのメソッドは未実装です」というエラーに遭遇してうまくいきません。</p>
<p>ヘルプをあさっていたら以下の記述を発見しました。</p>
<p><span id="more-242"></span></p>
<blockquote><p>Loader クラスは、継承する次のメソッドをオーバーライドします。これは、Loader オブジェクトが持つことができるのは 1 つの子表示オブジェクト、つまりロードするオブジェクトに限られているためです。次のメソッドを呼び出すと例外がスローされます。メソッドは、addChild()、addChildAt()、removeChild()、removeChildAt()、および setChildIndex() です。</p></blockquote>
<p>ざ、残念です…</p>
<p>別の方法を考えなければ…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/242/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ライブラリにあるムービークリップシンボルをデフォルトの設定で書き出したときの警告を消す</title>
		<link>http://www.game-create.com/archives/237</link>
		<comments>http://www.game-create.com/archives/237#comments</comments>
		<pubDate>Sun, 27 Jan 2008 13:14:35 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=237</guid>
		<description><![CDATA[ライブラリにあるムービークリップシンボルをデフォルトの設定で書き出したときの警告を消すためには、自前で MovieClip を継承したクラスの定義ファイルをクラスパスへ保存しておきます。

そもそも、なぜ警告が出てしまう [...]]]></description>
			<content:encoded><![CDATA[<p>ライブラリにあるムービークリップシンボルをデフォルトの設定で書き出したときの警告を消すためには、自前で MovieClip を継承したクラスの定義ファイルをクラスパスへ保存しておきます。</p>
<p><span id="more-237"></span></p>
<p>そもそも、なぜ警告が出てしまうのかというと、デフォルトの書き出し設定では、シンボル名をそのままクラス名と認識してしまうため、シンボルに割り当てるクラスの定義が見つからないからです。そのため Flash が気を利かせて「こっちで作っちゃうよ？」という意味のメッセージを表示しているのです。</p>
<p>つまり、何の問題もない警告なのですが、気持ち悪い方のためにこの警告を消す方法をお伝えします（私も神経質なので気になります）。</p>
<p>まず flash.display.MovieClip クラスを継承したクラスを作ってクラスパスへ配置します。内容は次のような感じです。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-reserved">package </span><span class="hl-identifier">actor
</span><span class="hl-brackets">{
  </span><span class="hl-reserved">import </span><span class="hl-identifier">flash</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code">.</span><span class="hl-identifier">MovieClip</span><span class="hl-code">;

  </span><span class="hl-reserved">public class </span><span class="hl-identifier">Byerkut </span><span class="hl-reserved">extends </span><span class="hl-identifier">MovieClip
  </span><span class="hl-brackets">{
    </span><span class="hl-reserved">public function </span><span class="hl-identifier">Byerkut</span><span class="hl-brackets">()
    {
    }
  }
}</span></pre></div></div>
<p>この場合、クラスパス以下に /actor/Byerkut.as という名前でファイルを保存します。一番簡単なのは *.fla ファイルがおいてあるディレクトリに actor というディレクトリを作って、その下に Byerkut.as というファイルを作るというパターンです。</p>
<p>このファイルを作りましたらムービークリップシンボルのリンケージ設定ダイアログを開いて、「クラス(C)」のテキストボックスの中に「 actor.Byerkut 」と入力します。</p>
<p>これで警告が消えるはずです。</p>
<p>ただ、 Flash さんも親切心から警告を出しているわけですので、気にならない人は無視した方がいいと思います（ファイル管理の手間が増えますし）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/237/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ライブラリにあるムービークリップシンボルを ActionScript から生成する</title>
		<link>http://www.game-create.com/archives/234</link>
		<comments>http://www.game-create.com/archives/234#comments</comments>
		<pubDate>Thu, 24 Jan 2008 15:54:20 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[DisplayObjectContainer]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=234</guid>
		<description><![CDATA[ライブラリにあるムービークリップシンボルを ActionScript から生成するためには次の手順を踏みます。


ライブラリから対象のシンボルを選び、コンテキストメニューの「リンケージ」を選択する
「 ActionSc [...]]]></description>
			<content:encoded><![CDATA[<p>ライブラリにあるムービークリップシンボルを ActionScript から生成するためには次の手順を踏みます。</p>
<p><span id="more-234"></span></p>
<ol>
<li>ライブラリから対象のシンボルを選び、コンテキストメニューの「リンケージ」を選択する</li>
<li>「 ActionScript に書き出し」にチェックを入れる</li>
<li>「最初のフレームに書き出し」にチェックを入れる</li>
<li>インスタンスを作る</li>
<li>生成したいムービークリップ中で DisplayObjectContainer::addChild() メソッドを呼び出す（引数にインスタンスを渡す）</li>
</ol>
<p>４と５の具体的なコードはこんな感じです。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-reserved">var </span><span class="hl-identifier">obj</span><span class="hl-default">:</span><span class="hl-identifier">SampleMC</span><span class="hl-default"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">SampleMC</span><span class="hl-brackets">()</span><span class="hl-default">;
</span><span class="hl-identifier">obj</span><span class="hl-default">.</span><span class="hl-identifier">x</span><span class="hl-default"> = </span><span class="hl-number">100</span><span class="hl-default">;
</span><span class="hl-identifier">obj</span><span class="hl-default">.</span><span class="hl-identifier">y</span><span class="hl-default"> = </span><span class="hl-number">100</span><span class="hl-default">;
</span><span class="hl-reserved">this</span><span class="hl-default">.</span><span class="hl-identifier">addChild</span><span class="hl-brackets">(</span><span class="hl-identifier">obj</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>この方法ですと、ちと警告が出てしまうのですが、とりあえず MovieClip がこんなに簡単に生成できるようになったよ！という情報でした。昔の苦労が嘘のようですね。</p>
<p>2008/01/27 追記：<a href="http://www.game-create.com/archives/237">警告を消す方法</a>をアップしました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/234/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MovieClip オブジェクトを左右反転する</title>
		<link>http://www.game-create.com/archives/228</link>
		<comments>http://www.game-create.com/archives/228#comments</comments>
		<pubDate>Mon, 21 Jan 2008 11:08:35 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=228</guid>
		<description><![CDATA[MovieClip オブジェクトを左右反転するためには MovieClip::_xscale プロパティに負数を指定します。

MovieClip::_xscale は横幅の倍率を保持していますが、ここに負数を指定すると [...]]]></description>
			<content:encoded><![CDATA[<p>MovieClip オブジェクトを左右反転するためには MovieClip::_xscale プロパティに負数を指定します。</p>
<p><span id="more-228"></span></p>
<p>MovieClip::_xscale は横幅の倍率を保持していますが、ここに負数を指定すると MovieClip の左右を反転することができます。倍率ですので基本は 100 となっており、反転するには -100 と指定します。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/228/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
