前回から作ってるテストゲームをバグ取りといくつかスクリプトを追加してみた。
まずはランプスクリプト。
元ネタはドラゴンスレイヤー英雄伝説1や2の洞窟におけるたいまつやランプ。
設定で変えられるけど、時間経過と共にだんだん明かりが小さくなっていくようにしている。
最初はspriteのbitmapを実際に描かせようとしたんだけど明かりの大きさの更新のたびに重くなりすぎて支障をきたしたので、ゲーム開始時にCacheに使うbitmapをすべて作ってを全部突っ込んで
それを使うようにして一応成功したんだけど、やっぱりゲーム開始時が重くなる。
その後spriteにzoomなる機能がついていることに気づきまたまた変更。
つまり最初にbitmapを1枚だけ作ってそれを拡大縮小させるという方法をとりました。
またランプの円の部分を含むbitmapはなるべく小さくして、周りの真っ黒になる部分に黒いspriteを4つ並べることで最初に作成する時間を短縮しました。

ランプのテストゲーム。
ダウンロード(1.84MB)
これは構想が二転三転したせいでただでさえ汚い私のコードがぐちゃぐちゃになってるので
もう少し調整したらスクリプトを公開しようと思います。
次にセーブの際、画面の画像も保存させるようにしてみた。
これはかなり前に作ったやつでバックアップに残っていたやつを改良したもの。
セーブのとき、どれがどのセーブファイルだったか分からなくなるのが不満だったので
サムネみたいなものがあれば多少はマシかなと思って作ってみました。
画像データはそのままでもよかったんだけどちょっとだけ保存ファイルを圧縮してる。
つまりbmpを色要素に分けて減色して、同じ数字が続く部分を置き換えることで圧縮してる。
それから戦闘中敵のHPや状態異常などを画面上に表示させてみた。
またまた古いゲームのドラゴンスレイヤー英雄伝説を元ネタにして作ってみた。
ただまだテキトーな感じで表示させているだけなのでまた修正すると思う。
本当は敵のグラフィックの下に表示させたかったんだけどデフォルトだと
表示させるスペースがなかった。
テストゲーム本体(以下CDA)のシナリオだけどカチューシャシナリオだけ最後のほうまで作りました。
文才に乏しい私には会話を作るのが難しく、どうもぎこちない感じになってしまった。
また修正すると思う。
あとカチューシャシナリオでいくつか画像を作ったので要領が2MBで収めるには困難になってきたのでもう開き直ってBGMの素材も追加してみた。
ただ音楽的素養が皆無な私にBGM自作は困難なので以下のサイトから素材を借りてきました。
Wingless Seraph
CDAのダウンロード(one drive)。
(注)one driveにおいてzipファイルをダウンロードするときchromeやfirefoxだと不正ファイル扱いされる可能性があります。
IEを使うか、設定を変更するか、chromeの場合ctrl+Jでダウンロードを開いて、
"不正なファイルを復元"することでダウンロードすることが可能です。
修正したバグだけどゲームの進行上重大なバグが2つあっていずれも戦闘中敵を倒すと止まる場合があるというもの。
1つはスキップモードによるバグでもう1つは次のターンのキャラを選択する際のバグ。
後者についてちょっと説明。
各キャラにturn_valueという変数を持たせているんだけど(実はもうひとつturn_value_magicというのもある)
大雑把に言うとループさせて生存しているキャラのturn_valueに敏捷の値を加算させていって、10000を超えたキャラにターンが回ってくる仕組みになってる。
10000を超えたキャラが同時に発生した場合はループさせず
turn_valueが大きい順にターンが回るようになっていてるんだけどここが問題で
10000を超えいてターン待ちしている状況で戦闘不能になると戦闘が進まなくなってしまうという状況になっていた。
たまにしか起こらないから気づくのが遅れました。