この「プログラミングのメモ」は既に削除しました。
『箱入り娘』の配布場所は、
箱入り娘です。
2011.11.28 更新
# 開発サイトを移しました。
# [
プログラミングのメモ]
# この記事はこのままにします。
ここ最近作っていた『箱入り娘』が完成したので、ファイルを公開します。興味のある人はダウンロードして自由に遊んでください。サイト上に設置しても構いません。ActionScript3で記述しています。Flashらしい細かなエフェクトもない極めてシンプルな『箱入り娘』です。標準設定ではゴールしても何も起こりません。
この記事の最後のほうの「■ダウンロード」にリンクがあるので、その上に書いてある「■免責事項」に同意の上、ダウンロードしてください。
ZIP形式で圧縮してますので、適当な解凍ソフトを使ってください。中にあるhtmlファイルを開くか、SWFファイルをブラウザに落とせば、動くと思います。ブラウザが開いていいかどうか聞いてくるかもしれませんが、そのときよろしければ許可してください。
ソースファイルは修正BSDライセンスで公開します。Flash CS3を持ってる人は、役に立つかは分かりませんが、AS3のプログラミングの参考にしてください。もちろん問題点とか見つけたら教えてくださいね。というか、ぼくは全くやる気のない人なので勝手にどんどん改造してもらっても結構です。そのためのライセンスです。
ブログやホームページに設置の仕方が分からないという人がいたら、そのときは設置の仕方とかここで書きますが、今回は省略します。説明がなくても設置できる人はどんどん設置してください。やりかたは、いろいろあるかもしれませんが一緒にはいっているhtmlをインラインフレームで設置するのが楽だと思います。必要最小限のファイルを同一のフォルダにアップロードします。
ステージのサイズは120x145で固定です。この大きさが不満なときはソースを書き換えて利用ください。
■ファイルの構成
ソースファイル以外のファイルです。設置するにはreadme.txt以外の少なくとも5つのファイルが同じフォルダになくてはいけません。追加の箱のデザインやタイルの画像を使う場合はこれと同じ場所に入れてください。
・readme.txt
この内容とほとんど同じ解説です。このファイルは設置に必要ありません。
・musume.swf
フラッシュファイル本体です。
・musume.html
ブラウザで開くためのHTML文書です。
FlashCS3が出力したものをパラメータを指定できるように少し書き換えています。
・AC_RunActiveContent.js
FlashCS3が上記のmusume.htmlとともに出力したJavaScriptです。上のHTML文書と同じ所に置いて下さい。
・musume.xml
標準の設定ファイルです。タイルの色などを設定します。このファイルの記述の仕方をあとで説明します。
・pattern.xml
標準のパターンファイルです。配置情報などが入っています。これもあとで説明します。
■ソースファイルの構成
フラッシュファイルmusume.swfを作るためのソースコードです。動作原理を知りたい人向けのファイルです。一つのflaファイルと、二つのasファイルからなります。asファイルはAcsionScript3言語で記述されています。Adobe Flash CS3でコンパイルします。
・musume.fla
Flashドキュメントです。
・main.as
メインプログラムファイルです。本来はflaファイル内に書くべきものですが、外部エディタで編集しやすいように別ファイルにしていました。
・Pattern/Pattern.as
Patternクラス定義ファイルです。Patternフォルダの中にあります。配置情報を管理し、内部クラスのタイルを制御します。
■設定ファイルの構造
・
現在使用中のmusume.xmlXMLで記述された基本設定ファイルです。できるだけ多くのものを変更できるようにしてみました。
標準のものは、musume.swfと同一フォルダにあるmusume.xmlですが、実行時パラメータで変更することができます。
次の項目を変更できます。
・タイルの行数、列数。省略時は5と4です。
・タイルが動き回る領域の始点。省略時は(10,10)ピクセル
・タイルの短辺の長さ(単位長)。省略時は25ピクセル。
・タイルが入りきれないときは短辺の長さを調整するかどうかのフラグ。省略時は固定です。
・タイルの平面・ハイライト・影の部分の色。16進表記、10進表記でも可。省略時はごらんのとおり。
・箱の平面・ハイライト・影の部分の色。16進表記、10進表記でも可。省略時はごらんのとおり。
・箱の縦横の長さ。120x145ピクセル。
・箱などの背景が描かれた外部ファイル名。SWF形式、JPG形式などの画像ファイル。省略時は内部で描画。
・選択したときの効果音ファイル名。省略時無指定。
・動き終わったときの効果音ファイル名。省略時無指定。
・移動ができなかったときの効果音ファイル名。省略時無指定。
・ゴールしたときに流れるSWFファイル名。省略時無指定。
・パターンが記述されたファイル名。省略不可。
■パターンファイルの構造
・
現在使用中のpattern.xml複数のパターンの情報をひとつのファイルの中に記述できます。
どのパターンを実行するかを指定します。定義されている順番が番号となり、それを指定します。0を指定するとランダムに選びます。
パターンの情報にはゴール位置と必要な数だけのタイルの情報が必要です。ゴール位置が指定されていないときは、座標(2,4)マスがゴールになります。
タイルの情報
・主役のタイルかどうかのフラグ:0以外ならば主役。一つのパターンには必ず唯一無二の主役が必要です。
・タイルの識別名:日本語でOK。
・タイルのタイプ:タイプは4種のみ。BIG、TALL、WIDE、SMALL。必ず大文字で書く。
・画像指定:あらかじめ登録されている名前か、外部ファイル名を指定します。後述します。
・開始位置の座標。それぞれの初期配置の座標をマスの位置で指定します。
musume.xmlでタイルの色を指定していますが、この上に貼り付ける画像を指定します。後述するリストにある名前を使うと楷書体の登録されたタイルの名前が表示されます。リストになければ外部ファイル名だと判断されます。SWF、JPGといったFlashが読み込むことのできる画像形式が使えます。タイルの上から上書きされるので、透明色を使って文字だけを重ねたり、タイルを塗りつぶして別なデザインにすることもできます。画像を指定してもタイルの色は必ず描かれるので、その色が邪魔なときは、タイルを床と同じ色に設定して解決してください。
■タイルに貼り付けられる内部定義の名前
『箱入り娘』パズルに使われるであろうタイルの上の文字を楷書体でいくつか登録しています。書体を変えたいときは、タイルの画像ファイルを一つ一つ作ってください。透明色を利用すればタイルの上に文字が書けます。またソースファイルを修正してもいいでしょう。
・大タイル用 2x2
musume(娘)
・横タイル、縦タイル用 2x1、1x2
gejo(下女),genan(下男),kyodai(兄弟),shimai(姉妹),jikei(次兄),tedai(手代),
banto(番頭),sofu(祖父),sobo(祖母),chokei(長兄),chichioya(父親),hahaoya(母親)
・小タイル用 1x1
kozo(小僧),decchi(丁稚),ototo(弟),imoto(妹)
■実行時パラメータ
フラッシュファイル名に続けてパラメータを記述することで、パラメータを直接渡すことができます。
□設定できるパラメータ名
・number
実行するパターン番号。パターンファイルでの指定よりもここの指定が優先されます。ここでも0はランダムです。
同じサイトで違う別々な場所に違うパターンを表示するときに使います。
・xml
設定ファイル名。指定されていなければ、musume.xmlが使われます。パターンファイルの指定はできません。
同じサイトで違う別々な場所に違う設定(タイル数、背景など)で表示するときに使います。
□musume.htmlファイル内での具体例
Javascript部分:
AC_FL_RunContent(
...
'movie', 'musume?number=5',
...);
OBJECT要素部分:
<object ...>
...
<param name="movie" value="musume.swf?number=5&xml=noscript.xml" />
...
</object>
■エラーメッセージ
設定ファイルに問題があるときは、いろいろとエラーメッセージが出てくるはずです。指示に従って設定ファイルを修正してください。2行目以降の英語で出てくるの行はエラーが起きた場所の表示ですので、プログラムに関心のない人は無視してください。
なお、設定ファイル内でファイルを指定しているのにそのファイルが存在しない場合は正常に動作しませんし、エラーメッセージも表示されないので気をつけてください。
■免責事項
今回公開したこのプログラムのファイルによって生じた一切の損害に対し私takayanは責任を負いません。それを承諾した人のみ自分のパソコンにダウンロードしてご利用ください。
またダウンロードした人はこの免責事項を承諾したものとみなします。
■ダウンロード
上記の免責事項を承諾されたら、以下のリンクからどうぞ。
『箱入り娘』ダウンロード ver.1.0.1
XMLの表記のちょっとした知識や、RGBによる色表現がわかれば、XMLファイルを書き換えたり、画像ファイルを用意するだけでいろんなカスタマイズができるように作ってあります。どうぞ『箱入り娘』のパズルに興味ある人はいろいろ設定を変えて遊んでみてください。ソースファイルも公開してあるので読める人は改良してみてください。
クラスの設計を最初からやり直さないといけないなあと思うところもありますが、そうすると収拾が付かなくなりそうなのでやめておきます。
エラー処理とかエラーイベント処理とかちょっと手を抜いています。いや手を抜いているというよりはまだ勉強不足です。手数や経過時間の表示など、まだまだ改良の余地はありますが、開発はここでひとまず休みます。