死神ディフェンス製作記録
9月の頭ごろ、デスクトップタワーディフェンスにはまって、似たようなのが作れないかなと。ぜんぜん違うものになりましたが。。。
以下はメモ帳につれづれと書いていたメモです。
タイトル:ホロウ狩り改め死神ディフェンス!
ゲーム概要:
ま、要はタワーディフェンスのパクリ
敵を倒すとお金が手に入って、そのお金で仲間を鍛えたり増やしたりする。
めんどくさいので地上のみで
兵種が多くなるのはあれだなぁと思うけれども頑張ってみる。
挙動:
各キャラクターは守備範囲を持っていて、その範囲内に入ったホロウをぬっころしに移動する。
守備範囲は自分を中心とした一定の広さで、ここに敵がいる限りうろうろする。
守備範囲内に敵がいなくなったら最初に配置した場所に戻る。
敵は基本的に通過しようとするだけ。
ただし攻撃してくる。
ホロウの攻撃によってHPが無くなったら死神は死亡
味方ユニットの特性について
1番隊……コスト高い、成長コスト高い、初期性能高い、成長の伸び高い、斬術S、白打S、歩法S、鬼道S
最強になりうるユニット。ただし、最高レベルにするまでお金がかかる
2番隊……コスト高い、成長コスト普通、初期性能普通、成長の伸び普通、斬術A、白打S、歩法A、鬼道A
移動が早い
3番隊……コスト普通、成長コスト普通、初期性能普通、成長の伸び普通、斬術A、白打A、歩法A、鬼道A
特にこれといった特徴なし
4番隊……コスト普通、成長コスト普通、初期性能低い、成長の伸び普通、斬術B、白打A、歩法B、鬼道S
唯一回復に回れるユニット。ただし攻撃は出来ない。自分の回復も出来ない
5番隊……コスト普通、成長コスト低い、初期性能低い、成長の伸び高い、斬術B、白打B、歩法B、鬼道B
成長コストが安いため、主力になりうるユニット。
6番隊……コスト高い、成長コスト低い、初期性能高い、成長の伸び低い、斬術A、白打A、歩法A、鬼道A
初期の性能は1番隊に匹敵する代わり、殆どそれ以上成長しない。
7番隊……コスト普通、成長コスト普通、初期性能普通、成長の伸び普通、斬術A、白打B、歩法B、鬼道C
接近戦の強いタイプだがそれほど大きい特徴はない
8番隊……コスト低い、成長コスト普通、初期性能普通、成長の伸び低い、斬術B、白打B、歩法B、鬼道B
配置時のコストが安い。ただし、それほど成長は期待できない。
9番隊……コスト低い、成長コスト低い、初期性能普通、成長の伸び普通、斬術B、白打B、歩法B、鬼道A
鬼道による遠距離戦が得意
10番隊……コスト低い、成長コスト高い、初期性能低い、成長の伸び高い、斬術B、白打B、歩法B、鬼道B
コストが低いが成長の伸びがいいユニット
11番隊……コスト低い、成長コスト普通、初期性能低い、成長の伸び普通、斬術A、白打B、歩法B、鬼道C
突撃して斬るのみの部隊。初期の主力?
12番隊……コスト低い、成長コスト高い、初期性能低い、成長の伸び低い、斬術C、白打C、歩法C、鬼道C
ユニット非常に弱いが、HPが0になると自爆する。成長させると自爆の範囲が広がるが、当然味方を巻き込む。
13番隊……コスト低い、成長コスト高い、初期性能低い、成長の伸び高い、斬術B、白打B、歩法B、鬼道B
平均的に強くなる。特徴のないユニット
もう少し差別化が欲しいが、とりあえずここまで。
主人公は開始時にどの隊かを選ぶことが出来る。
成長は所属した隊のものより少し伸びがいい。
主人公が死ぬと終わり。
じゃ、まずは主人公VSホロウを簡単に…
問題はホロウも主人公もまっすぐ移動するだけという点…
ま、作ってみよう。
その前に取材? タワーディフェンスで作りたいものに近いものを調べてみる。
▼取材の結果
タワーディフェンス系で、タワーのHPが削られるというものは無かった。
▼進行状況
9/17
とりあえず鬼ごっこまでは出来た。
ちゃんとインスタンス名を指定しないと動かないことは理解した。
ダイナミックテキストでスコアを表示したいときは、変数を指定しないとエラーが出ることも理解した。
主人公に対して虚が近づいていく感じ……
虚が自分から近づいていって、やられるシーンを作ってみる
近づいたら、0,0の位置にワープさせて、また近づかせた
接触した瞬間にスコアを表示するようにした。
9/18
必要なものが大体解ってきたので書き出し。
弾
虚のHP
死神のHP
弾の射程距離
弾が虚に当たったときの処理
虚が死神に当たったときの処理
現在、虚が死神にぶつかったときに問答無用で切られるけれども、この処理を、HPが無くなったときに変更
斬術、白打、歩法、鬼道の設定を生かすため、ゲームへどう反映させるか考える。
各ユニットの持つステータスはHP、斬術、白打、歩法、鬼道の5つ
ブリーチの設定だと……
斬術……刀で切る
白打……素手による白兵
歩法……移動方法
鬼道……呪術。いわゆる魔法
斬術……近距離での攻撃力、攻撃範囲
白打……近距離での攻撃回数と、全体的な防御力。体裁きが上手いと言うことで。
歩法……移動速度。
鬼道……遠距離攻撃の射程、威力(四番隊はこれで回復の射程と回復量が決まる)
虚にも同様のステータスを割り振る
斬術は、範囲内に入った敵を問答無用で切り捨てるので、白打はやっぱり防御力に?
斬術での攻撃範囲には変化なしにする?
斬撃の範囲を円で指定。ま、得物の長さに依存するものだしこれはこれでOK?
ホロウの移動速度が反比例的だったので修正。一定速度で移動するようになった。
ついでに、歩法による移動速度の反映
鬼道による攻撃……と問題発生。
斬撃を作成した最、ムービークリップで射程範囲を決めたため、鬼道が広いと白兵しまくる。。。
ということは、斬撃の射程範囲をムービークリップに指定しなおす必要があると。
ムービークリップ名.ムービークリップ名の指定が出来る模様。試してみたらうまく行った。
ムービークリップなら、拡大縮小ができるので、斬撃の射程範囲も反映させることにする。
10,10にしたら斜め左上に移動した… 整列?
_widthと、_heightの指定はどうあがいてもずれるようなので、違う方法を試す。
あと、_x、_yによる座標の指定も微妙にずれるので使わないことにする
というわけでパーセントの指定を試してみる。
原因が大体判明
ムービークリップに変換してから中央揃えとかなんかいろいろやったからずれたらしい
というわけで作り直し……うぐー。
どうやら勘違い。
ムービークリップ内での_x、_yの指定は、ムービークリップの中心を基準に行われるらしい?
ためしに、ムービークリップじゃないところで指定してみる……成功
ただし、座標はやっぱりずれる。。。ムービークリップにした瞬間に、中央が座標の基準になってない……
相対パスで指定するときは、親のムービークリップの基準点が0に
絶対パスで指定するときは、全体の左上が基準に
で、ライブラリの編集画面から戻れないわけなんだが……
毎回消しては戻しをしなきゃいけないんだろうか……
ライブラリを開いて、ダブルクリックさえしなければ何とかなる様子
とりあえず、やり直したところまでは戻ってこれた。
座標を正確に指定する方法がわかったので、斬撃の大きさも変えてみる。
斬撃の範囲は、「斬術の値×0.2 + 30」極端に広くなることはない。
虚にも斬撃範囲と鬼道の範囲を追加
動かしてみる。鬼道の範囲が触れた瞬間に死亡。そりゃそうだ。
スクリプトの記述位置を変更した。
ユニットが当たったときの判定にし忘れていたので更新
そろそろ鬼道の攻撃について頑張る。
数値が上がれば上がるほど広くはしたいけど……
原作を見る限りじゃ、そんなべらぼうに広いって訳でもなさげ
30を斬魄刀の長さだと考えると、平均的な日本刀の刃渡りが、85-90cm
扱いやすい長さを考えたら、だいたい自分の親指の付け根からの長さから肩まで……
死神の身長は170越えが結構いるので、とりあえず170を平均として考えれば、やっぱり85ぐらい。
斬撃の範囲を360度にした都合状、体を限界まで伸ばした突きは含まれないものとして考えると、
半径は腕よりちょっと短い長さ+刃渡りよりちょっと短い長さ。
ほぼ同じと考えて、一番長い射程で30/2/2で7.5。
1で10cmが計算しやすい値かなという結論。
ほんで鬼道の射程。原作中で出てきた最大の大きさのものは、勇音のもののみで、
それ以外は割りと近距離でぶっ放しているっぽい。
鬼道の達人の雛森でさえ、鬼道のみで相手を殺すことはめったに無いので、本当に牽制用なのかも。
あるいは、始解など、斬魄刀を使いこなす上で重要な要素?
とすると、射程距離も多分数メートルクラスか。
ためしに10倍で。下手すると斬魄刀より射程が短いw
撃った弾が、自分と同じ動きをする……
移動したときに、移動した分だけマイナスを代入することで解決。
次、鬼道弾の当たり判定。まず、当たったら消えるところから。
とりあえず、当たったら手元に戻るようにしてみた
横にしか進みませんが何か?
初期値しか読み込んでいなかった模様。
とりあえず、当たったらもう一度角度を計算するようにしてみる。
弾の速さは鬼道に依存するようにしてみた
で、画面外に出たら戻ってくるようにしてみる。
はい、画面外にでたら戻るように指定するため、0を使用したら右下じゃないと攻撃してくれなくなりました。
そうでなくて。
というわけで、射程外に出たら消える方向で
テストのために鬼道を100にしたら激しく楕円になった。どっか入力ミスってる
修正。修正してみてわかったけれども、100にするとえげつない射程距離になる……
弾速を鬼道に依存させていたけれども、処理の関係ですり抜けることが判明。
ということは、弾速は一定以上は高くしない方がよさげ。
自機が移動すると、射程が動くため、本来の射程距離以上に動いたりする現象が……
ま、今回は諦める
ターゲットを指定する方法を頑張って調べてみる。
鬼道の射程内に虚がきたらターゲットに名前を代入。
なにも無かったら、ターゲットは空白になる。
一応実験は成功。ただし、弾が動かなくなる。戻す処理してない。。。
戻すと止まったりするバグと戦いながら終了。
鬼道は微妙に誘導しつつ飛ぶようになりました、と。
接触した相手のインスタンス名は取れないものか。。。
ま、いいや。
単純な攻撃がこれで出来るようになったので、次に虚からも攻撃させてみる。
凡ミスを繰り返しつつセロによる攻撃が可能に
斬撃も終了……でも、これって処理が逆な気がする。
統一しておこう。
複数の虚を出現させてみる。
ほぼ予想通りの挙動。最初の虚のみダメージが入り、他は無理。
fot文での代入が可能だったので、問題は解決。全ての敵に斬撃が入るように。
鬼道の射程内にいる敵も、当たればダメージが入る仕様にはなった。
問題は、角度の調整なんだが……
自分からの相対パスで知る方法は無いものか?
目標と、自分の座標を、共に相対パスで調べれば解る様子。
ターゲットになる相手が、その時鬼道の範囲内にいたもののうち、一番番号の古いものになる
新たに出現したとき、変なところに出ると、目の前にいないのに攻撃するというなぞ現象が起こる……
TDはそれでよかったけど、こっちは向かってこられているのでちょっと怖い気もする。
とりあえず、鬼道を下げて実験。そんなに違和感なし。
もうしばらく経って、システムがしっかりしてきたら考え直す。
虚の出現位置を絞ってみた。
このあたりもテストプレイを重ねてから調整。
今まで自分で動かしていたけれども、行動を自動的に動かさせてみる。
目標の設定をどうするかという問題がある……
単純にランダムにさせてみる。
弱い敵と当たれば当たるほどHPが回復する珍現象を修正。
修正していくうちにバグにぶち当たって虫つぶし。日付変わる
9/19
最初に敵をランダムに選択する所までは成功。
ただし、同じ敵をずっと追いかけ続けるのはあんまりよろしくは無い。
誰か一人を倒した時点でターゲットを変更するように修正してみる。
一応動いた。鬼道の挙動がちょっとおかしい。撃つときと撃たないときがある…
ループ処理のたび空白にしているのが問題。
当たるたびにターゲットを決めなおす設定に変更。
挙動がまともになってきた。
次、死神複数 VS 虚複数
ほぼok
ホロウ生成時に、1が欠番になるバグが気になる……
記述ミスで、shinigamiが出なかったときは普通に出た。意味が解らない……
フラッシュのバグと勝手に思い込んで、作業継続。
死神を量産するとバグるっぽいので、スタート時に死神は量産しないようにする。
増えたときに、変数を増やす方向で。
# 就寝
# 起床
寝てる間に思いついたこと
今ムービークリップの一番上に書いてあるスクリプトを、unitに書き換える。
相対パスは全て書き換える必要があるけれども、これで呼び出しが可能になるはず。
移動はしたものの、挙動がおかしい。
unitに一番上のムービークリップの座標を合わせるようにしたけどうまく行かないみたいだ。
移動速度が倍ほど違うのはなぜだろう……
原因がわからないので違うアプローチを試みてみる
とりあえず元に戻してみた。
スクリプトが消えるのならと、ユニット全体をムービークリップにしてみる
相対パスを深くして実験。
例によって動きが逆になる。
現在見ているのは、相対的な相手の位置……これはどこになるんだ?
ためしに、一つ上のムービークリップを狙わせてみる。やっぱり変な所へ移動。
組み合わせて計算しろとの事か。
ムービークリップのセンターをあわせてみたけれどもうまく行かず。
挙動を見た感じ、移動の向きはy軸が正しくて、x軸は逆っぽい
試しにマイナスをかけてみたが、どの道目標地点がずれてるので論外
訂正。絶対で見ようが相対で見ようが座標は変わらず。
親の座標からどれだけずれているかが表示される……わけでもないっぽい。
把握。親の座標は正確。で、この座標は親の基準となる座標を基準に行われる。ここまでok
問題は、自分自身の座標が、親の基準となる座標からみてどこか、なので目的地点と自分の位置がずれてる。
親のムービークリップは子のムービークリップがどれだけ動こうとずれることはない。
お互いの基準点を同じ位置にしてみればちゃんと動くかも。
ライブラリから呼び出してみる。
成功。で、馬鹿なことをしていたことに気がつく。
わざわざムービークリップで一つ上の親を作らなくてもレイヤーに記述できるじゃないか……
とおもったけどやっぱりだめぽ。イベントが取れない。ただ、初期化は出来るわけだから、次回は活用してみよう
どうも_rootにattachを入れると挙動が怪しいので、ボタンで死神を生成させてみよう。
というわけでフィールド生成に入りたいわけなんだが。
レイアウトでどうするかちょっと悩んだので、DTDを参考にしてみる。
DTDのレイアウト
戦うフィールド:
正方形。
敵がうろうろして、味方の砲台が配置される。
敵の入り口と、敵の出口が表示され、ここから外には配置できない。
砲台をクリックすると射程距離が表示され、ステータスは右に表示される
左上の、画面上部のすぐしたにモードが表示される。
背景:
フィールドとほぼ同じ広さに空白のある画像。
画面上部:
ヘッダ。スコア、レベル、ライフ、お金の表示。20PXぐらい?
黒ベースで、アルファチャンネルで透過
画面右部:
アイコン。音量とメニューへのショートカット、スタートボタン
スタートボタンをクリックするとゲーム開始。ゲーム中は次のレベルへのボタンになる。
次へのレベルのボタンをクリックすると、新しい敵が出現する。かわりに、スコアボーナス
ユニット。5X2でアイコンが並べられている。
マウスオーバーで説明。クリックで選択。
選択時にフィールドでクリックするとクリックしたへクスに配置される。
選択時、説明文にX印が出る。これを押すことで選択をキャンセルできる。
また、選択時には他のアイコンにマウスが移動しても説明は切り替わらない
フィールドに配置された砲台をクリックするとステータスが表示される。
売却と、強化のボタンが表示される。お金が足りない場合、強化のボタンは暗い。
強化には一定の時間がかかり、その間砲台は攻撃できない。
強力なものになればなるほど、強化中の時間は長くなる
背景は画面上部と同じく黒の透過
画面下段:
敵の情報。次にどのレベルの敵が来て、どんな特徴かが書かれている。
時間に合わせてゆっくりスクロールし、消えるとそのレベルの敵が出てくる。
7X1の表示。ただし、右部と重なる部分は表示されない。
背景は画面上部と同じく黒の透過。
へクスの判定:
何も無いところの場合、マウスカーソルの右下を基準にして上、左、左上の4マスを選択する。
放題がある場合、砲台を選択
概要:
次から次へと現れる敵をバトルフィールドで撃破する。
一体突破されるごとにライフが1減る
敗北条件:
ライフが0になったら敗北
勝利条件:
レベルによるけれども、一定時間が経過してライフが残っていれば勝ち
終了画面:
フィールドの壁とほぼ同じ大きさの角丸の画面が表示される
スコアがと、送信、キャンセルの3つがある。
スコアは、基本的に倒した数と、残りライフの25倍
そして、次のレベルへで蓄積されたタイムボーナスが表示され、
一番下にトータルとして合計が表示される。
ブリーチらしい背景ってなんだろう……
良くわからなくなったので、とりあえずカラブリから護廷十三隊の隊章をスキャン。アイコンに使う。
護廷十三隊の隊章は30X30で作成。レイアウトの作成にうつりたい。
著作権フリーを探してみたけれども使えそうなものなし。
昔とった写真を探したら、いい感じに使えそうなものがあったので採用。
なんとなく配置。雰囲気は出るけど、隊章の画像の荒さが目立つ。。。
牛乳がなくなったので買い物に行ってきた。
行き返りでシナリオというか設定的なものを考える
シナリオ
あなたは、現役を退いた死神である。
昔、虚と戦ったときに両足を失ったため、現地で戦うことは不可能になった。
戦えない悔しさと、一人でも多く生き残らせるため、自身は中央霊術院にて教鞭を振るう。
この日は、訓練生の指導として、野外での実習を行っていたが……どうやら虚の巣に誤って紛れ込んだらしい。
訓練生が戦闘中との報告を受けたあなたは、動けない体のまま、通信で指揮を執ることになった。
訓練生および死神を派遣し、ホロウの巣を殲滅せよ。
というわけで、全滅必至の戦いをするわけですよっていうか、クリアはないし。
レイアウト、スタートボタンまで作成。
ためしにスタートボタンを押したときに、今までロードでやっていたものを呼び出してみる。
挙動は今までと同じ。
死神だけ、ロード時に読み込ませてみる。
スタートボタンを押すと、ホロウはすべて表示されるが、死神が消える。。。
もしかしたら、同じ深度にはMCは一つしか配置されないのかも……?
ホロウの最大数を5までに設定して、
死神の最大数も5までにするなら番号の振り分けも楽か…
0-4 = ホロウ
5-9 = 死神
成功。多分。微妙にまた目標をうしなったっぽい。あとでしょり。
スコアの文字が読めないので修正。ついでにフォントもHG行書体にしてみる。
後でやるつもりだったけど気になったので。
相対パスのミスを発見。同じく、セロの発射で相対パスのミスを発見したので修正。
続いて、味方のステータスの確認画面……
右が広いからここに5人分作ってみる?
その前に。
スタートボタンじゃなくても、どこを押してもスタートする問題について。
ムービークリップでのクリックの監視は、フラッシュ内すべてで行われるらしい。
なので、ボタンはボタンとして作成したほうが無難な様子。
次、ボタンを押したらいつでもリセットが効く問題。
ボタンを押したら入れ替えるとかできるんだろうか???
テキストをダイナミックテキストにして、ゲームスタートのフラグを用意して試してみる。
ダイナミックテキストにすると、フォーカスしてしまって使い物にならない……
というわけで、プロパティを調べてみると、ムービークリップにもボタンと同じ機能というか、
同じASが記述できるようなので、ムービークリップにして試してみる。
ダイナミックテキストも問題なく変更されるし、ボタンのクリックもできるので解決。
リセット押したときダイアログがほしいかなぁ……
一段楽したので気が抜けつつある。
ここから先作らなくちゃいけないもの。
隊員5名のステータス表示画面
隊員5名のステータス格納部
隊員5名のレベルアップについて
部隊員の補充について。
まず配列から。ステータスは何がいるか?
とりあえず、HP、斬術、白打、歩法、鬼道、所属部隊、現存フラグ。
HPがなくなったら現存フラグに0を代入してムービークリップを消す。
いちいちどこかに格納しなくても、ステータス表示画面を配列代わりに使えば楽なことに気がついた。
というわけで、必要なものをまず作る。
およそのレイアウト完成。
かっこよくなってきたよwww
仮に配置したキャラクターのアイコンは1つにして全部消す。まずはチェックから。
感情移入のため、名前をつけれるようにしてみた訳だ。
えーと、まずはドラッグアンドドロップの実装から。
右の隊章をキャラ名の上にドラッグドロップすると人員が補充されたことになる。
その設定は隊章のクリックから始めるべきか?
まずは部隊の設定から始めることにした。
ドラッグアンドドロップの実験。自分自身をドラッグさせると、当然動くのでまずい。
分身を用意する必要があるので、半透明のものを作る。
……ムービークリップの名前は、数字で始まっちゃいけないのを忘れていた……
クリックしたときに分身を呼び出すことに成功。
ただ、リリースしてもついてくる。これはどっちに書くべきか?
分身のほうに書いてみたら失敗。本体のほうに書いてみる。
どっちもうまくいかない……
元のアイコンに記述しても同じような感じ。謎。
startDrag (this , false) ;
startDrag (this , true);
吸着しないととんでもないところからついてくるので、吸着しないとだめ。
把握した。ドラッグを終了させた段階で、リリースがどちらにも発生していない。
無理やり近づいてリリースするか、本体の上でリリースするしかない様子。
吸着の仕方の問題かも。
はい、把握。ムービークリップのセンターがずれてた。またこれか。
自動でセンターになってくれないものかなぁ……
問題発生。リリースが発生しないとな?
リリースを発生させようとしたら、もう一度その場でクリックしないとだめ。なんか違う
stopdrag();はとにかく発生すれば、ドラッグ中のものを停止させる機能っぽい。
Flash中は、ドラッグは1つしかできないので指定する必要がないのか。。。
on(releaseOutside);を発見。
>>
ポインタがボタンの内側にあるときにマウスボタンを押し、
その後ポインタがボタンの外側にあるときにマウスボタンを離した場合。
<<
まさにそれ。releaseはクリックした要素上じゃないと無意味なんだなと。
深度が楽しいことになりそうなので予約追加およびまとめ。
0-4 = ホロウ
5-9 = 死神
10-14 = ユニットのステータス確認用ボタン?
15 = ユニット1の所属隊アイコン表示用
16 = ユニット1の所属隊アイコン表示用
17 = ユニット1の所属隊アイコン表示用
18 = ユニット1の所属隊アイコン表示用
19 = ユニット1の所属隊アイコン表示用
名前の左にある所属部隊のところに、ドラッグ中のアイコンを持っていってドロップしたら所属。
違うところで離したらアイコンを画面外に。
はい。ドラッグドロップしたらえらいとことんでいきました。
子の座標だからずれるんだなとまたいまさら認識。
このままだと使いにくい気がしたので、ドロップの範囲を拡大してみようとしたけどむりぽ
素直に、隊章のところに落とす使用にしてみた。
例によってセンターをいじり忘れる。
現状だとドラッグしたものがそのまま張り付くのであんまりよろしくはない。
ということで、ライブラリから呼び出してみることにする。
今日はここまで?
9/20
0030帰宅
帰りしなに考えてたこと。
シナリオを変更する?
新しく考えたシナリオ
中央霊術院で少し調子にのったグループが誤って虚の巣に足を踏み入れてしまった。
巣にいる虚をすべて撃退しないことには、どうやら開放してもらえそうにない。
5人で力をあわせて生き残れ!
とすると、完成が楽。HPがなくなったら終わり。
レベルアップは、右のアイコンをレベルアップさせたいキャラの名前の横に持っていけば、
各隊の特徴にあわせたレベルの上がり方をする。
実に楽。というわけで、もう一度考えてみる。
まず、報酬はレベルに応じて得られることにする。
レベル1の虚は1を、レベル10の虚は10をそれぞれ落とす。
レベル10以降は初期パラメーターだとダメージが通らないので、
そこまでにたまる金額が基準になる。
10+20+30+40+50+60+70+80+90 = 450
とりあえずイメージ的な物
1番隊……コスト高い、全部大幅にあがる
2番隊……コスト高め、白打が大幅にあがる
3番隊……コスト高め、全部が上がる
4番隊……コスト安い、唯一HPが上がる
5番隊……コスト安い、全部が気持ち上がる
6番隊……コスト普通、全部が上がる。
7番隊……コスト普通、斬撃と拍打が上がる
8番隊……コスト普通、全部が上がる
9番隊……コスト普通、鬼道が上がる
10番隊……コスト普通、全部が上がる
11番隊……コスト安い、斬術が上がる
12番隊……コスト増える、全部が下がる。代わりにお金が手に入る
13番隊……コスト普通、全部上がる
コスト普通で全部上がるは考え直したほうがいいかも
逆に考えてみる。
コストが高い 全部が上がる
コストが高い 何かが大幅に上がる
コストが普通 全部が気持ちあがる
コストが普通 何かが上がる
コストが安い HPの回復
コストが安い 何かが気持ち上がる
コストが増える 全部下がる
で、さらにバラけさせて
全部が上がる 1
斬撃が大幅に上がる 11
白打が大幅に上がる 2
全部が気持ち上がる 3
斬撃が上がる 10
白打が上がる 9
鬼道が上がる 13
HPが上がる 4
斬撃が気持ち上がる 6
白打が気持ち上がる 7
歩法が気持ち上がる 8
鬼道が気持ち上がる 5
全部下がる 12
歩法や鬼道が上がり過ぎると問題があるので、そこは制限しつつ…
コスト HP 斬撃 白打 歩法 鬼道 備考
1 280 0 +7 +7 +2 +2 全部が上がる
2 150 0 0 +10 0 0 白打が大幅に上がる
3 140 0 +2 +2 +1 +1 全部が気持ち上がる
4 10 +50 0 0 0 0 HPが上がる
5 50 0 0 0 0 +1 鬼道が気持ち上がる
6 20 0 +1 0 0 0 斬撃が気持ち上がる
7 20 0 0 +1 0 0 白打が気持ち上がる
8 50 0 0 0 +1 0 歩法が気持ち上がる
9 80 0 0 +5 0 0 白打が上がる
10 80 0 +5 0 0 0 斬撃が上がる
11 150 0 +10 0 0 0 斬撃が大幅に上がる
12 0 -10 -10 -10 -10 -10 全部下がる。1000お金が増える
13 80 0 0 0 0 +2 鬼道が上がる
鬼道と歩法が上がるものはコストをワンランク上げてこんな感じ
とりあえずはこれでテストしてみよう。
せっかく作ったドラッグアンドドロップでの呼び出しだけど使わなさそう……
0200就寝
0930起きた
虚を倒してもお金が入らないことにいまさら気がついた。
それと、人員の追加補充がないならば、最初から死神を5名配置してしまおう。
お金の単位は「環」?
のようです。レベルアップに環を使うのは微妙に違う気がするなぁ。
シナリオに矛盾するしちょっと考え直そう。
虚が死んだらどうなるの?
詳しくは不明。とりあえず、霊子にかえることに勝手に妄想しておく。
暫定的にお金で処理しておく。
5vs5まで成功。お金が出ない……
ダイナミックテキストが編集できるのかも知れないと勝手に思い込んでいたけれども、大丈夫っぽいので作り直し。
お金の表示終了
前書いたやることをもう一度確認
隊員5名のステータス表示画面
隊員5名のステータス格納部
隊員5名のレベルアップについて:途中
部隊員の補充について。:なし
レベルアップから処理するのは間違いな気がした。。。
ステータスの表示から。ムービークリップのクリックで、説明用のダイナミックテキストに表示。
ステータス格納は、よく考えたらもう出来てるじゃないか。
ムービークリップのクリックだと、名前の変更が出来ないので、
クリックじゃなくマウスが来たらにしてみる……同じ結果。
仕方ないのでレベルアップ用のアイコンにする。
ダイナミックテキストで改行はどうやるんだろう。JavaScriptと同じ方法かなぁ……
おなじですた。
ステータスの表示完成。
死亡テスト。死ぬけど消えない。
消すムービークリップの指定を間違えていた……
ステータス表示、1キャラ分終了
同時に格納部も、1キャラ分終了
レベルアップの続き。レベルアップは成功。
制限。
ゲーム開始前にドラッグドロップできるのは問題なのでやらない。
お金が足りないのにレベルアップが反映されるのも問題なのでやらない。
メモ:フラグの変数名はgamestart
次、マウスオーバーで説明
1番隊のみ成功。
ステータス表示用のムービークリップを全キャラ分増やす。
横着してこぴぺしたら、全部変更される様子。
変数を利用して問題解決。
お金がなくてもドロップできる問題発生。
毎回数字をすべて変えるのがだるくなってきたので、変数で処理。
スタート時に斬った数とお金が表示されないのも問題でないかい?
ついでに分散してた処理を一箇所にまとめる。ソースが少し減る。
やっとどのユニットをレベルアップさせたかの判定に。一番隊で実験。成功。
ソースこぴぺの前に。
レベルアップに必要な金額かがたまっていない場合、使えない事を暗示するため、画像を暗くしたい。
明度を使おうとしたけど、プロパティが見つからなかったのでアルファチャンネルをいじる。成功。
隊章のムービークリップにインスタンス名を記述。
ドラッグ用の画像用意。
コピペ直前に、修正箇所が多いことに気がついて呼び出すクリップについては変数化。
消費するコストと、増えるパラメータについては終了。
ムービークリップのセンターがあってない
12番隊で死んでも生き残るバグ発見。
先に各隊のテキスト修正から。終了。
12番隊のバグについて。
最初の死神しか死んでない。
idの指定でミスってる様子。
どうやら、呼び出しもとの指定した関数よりも、loadの方が優先(遅い)らしい。
ためしに対象のムービークリップで宣言をせず、呼び出し元で勝手に作った変数を代入。成功。
暴挙だと思うんだがどうだろう。。。
デバッグ中
死んだ相手をターゲットにしている虚がとまった。
そりゃ、いないもんね……修正
虚の出現位置がヘッダー部分にめり込むので初期配置の_y軸の調整。
スタートボタンのロールオーバーでの説明文追加。
ホロウの上にマウスカーソルを持っていくと、そのホロウの説明
死神の上にマウスカーソルを持っていくと、死神の説明
死神が死んだとき、ホロウのターゲットが突如としていなくなり固まるので、修正。
序盤で、2体目がやたらとワープする現象を修正。レベル0だったのね。
レベルアップ用の隊章をクリックしてすぐ離すと、いつまでもついてくる現象を修正。
バグ取りほぼ終了。
バランス調整。
レベル3まではあまりにもまったりしていていらいらするので、もうちょっとすばやく。
移動は3ぐらいは欲しい。動いてる感じがない。
あと、ゲームオーバーの設定を。
無限ループは回避。メッセージ欲しい。
最初の画面に戻ることで、終わった感は出た。
攻撃と防御が同じ敵に当たった場合、いつまでたっても終わらない現象をどうしよう。
白打が防御になっているけど、値そのままを使わずに乱数で処理してみよう。
何度試してもこう着状態に陥るので、ソース確認。
攻撃と防御で同じ値なら処理をしないようになっていた。そりゃぁ、ダメージも通らんわ。
たまに無限ループに陥る。
虚の目標のつけ方に問題がある様子。
タイミングの問題か……
ホロウ側でループしないように処理してみた。
ほぼ完成。現状だと、マユリ様にお願いしてお金をもらわないと相当厳しいので、
初期のお金を増やしてみる。
ダメージ計算を変えたおかげで、難易度が跳ね上がった気がする……
お金を持ち越せる仕様はいいかもしれない。
HPが下がった死神がどれかわかりづらい。
死んだ死神についてももう少しわかりやすくしたい。
死んだらバツ印をだしてみた。わかりやすくなった。
フィールド上の死神にポイントを載せたら、コンパネ側にどの死神かわかるようにした。
わかりやすくなった。
コンパネ側で選んでいる死神がどの死神かわかるよう、ポインタが来た時点でわかるようにしてみた。
お金の引継ぎはあんまりよろしくないことがわかったので修正。
ゲームの画面的なものはこんな感じかな……
とりあえず公開。
Ver 0.1
製作日誌 死神ディフェンス
以下はメモ帳につれづれと書いていたメモです。
タイトル:ホロウ狩り改め死神ディフェンス!
ゲーム概要:
ま、要はタワーディフェンスのパクリ
敵を倒すとお金が手に入って、そのお金で仲間を鍛えたり増やしたりする。
めんどくさいので地上のみで
兵種が多くなるのはあれだなぁと思うけれども頑張ってみる。
挙動:
各キャラクターは守備範囲を持っていて、その範囲内に入ったホロウをぬっころしに移動する。
守備範囲は自分を中心とした一定の広さで、ここに敵がいる限りうろうろする。
守備範囲内に敵がいなくなったら最初に配置した場所に戻る。
敵は基本的に通過しようとするだけ。
ただし攻撃してくる。
ホロウの攻撃によってHPが無くなったら死神は死亡
味方ユニットの特性について
1番隊……コスト高い、成長コスト高い、初期性能高い、成長の伸び高い、斬術S、白打S、歩法S、鬼道S
最強になりうるユニット。ただし、最高レベルにするまでお金がかかる
2番隊……コスト高い、成長コスト普通、初期性能普通、成長の伸び普通、斬術A、白打S、歩法A、鬼道A
移動が早い
3番隊……コスト普通、成長コスト普通、初期性能普通、成長の伸び普通、斬術A、白打A、歩法A、鬼道A
特にこれといった特徴なし
4番隊……コスト普通、成長コスト普通、初期性能低い、成長の伸び普通、斬術B、白打A、歩法B、鬼道S
唯一回復に回れるユニット。ただし攻撃は出来ない。自分の回復も出来ない
5番隊……コスト普通、成長コスト低い、初期性能低い、成長の伸び高い、斬術B、白打B、歩法B、鬼道B
成長コストが安いため、主力になりうるユニット。
6番隊……コスト高い、成長コスト低い、初期性能高い、成長の伸び低い、斬術A、白打A、歩法A、鬼道A
初期の性能は1番隊に匹敵する代わり、殆どそれ以上成長しない。
7番隊……コスト普通、成長コスト普通、初期性能普通、成長の伸び普通、斬術A、白打B、歩法B、鬼道C
接近戦の強いタイプだがそれほど大きい特徴はない
8番隊……コスト低い、成長コスト普通、初期性能普通、成長の伸び低い、斬術B、白打B、歩法B、鬼道B
配置時のコストが安い。ただし、それほど成長は期待できない。
9番隊……コスト低い、成長コスト低い、初期性能普通、成長の伸び普通、斬術B、白打B、歩法B、鬼道A
鬼道による遠距離戦が得意
10番隊……コスト低い、成長コスト高い、初期性能低い、成長の伸び高い、斬術B、白打B、歩法B、鬼道B
コストが低いが成長の伸びがいいユニット
11番隊……コスト低い、成長コスト普通、初期性能低い、成長の伸び普通、斬術A、白打B、歩法B、鬼道C
突撃して斬るのみの部隊。初期の主力?
12番隊……コスト低い、成長コスト高い、初期性能低い、成長の伸び低い、斬術C、白打C、歩法C、鬼道C
ユニット非常に弱いが、HPが0になると自爆する。成長させると自爆の範囲が広がるが、当然味方を巻き込む。
13番隊……コスト低い、成長コスト高い、初期性能低い、成長の伸び高い、斬術B、白打B、歩法B、鬼道B
平均的に強くなる。特徴のないユニット
もう少し差別化が欲しいが、とりあえずここまで。
主人公は開始時にどの隊かを選ぶことが出来る。
成長は所属した隊のものより少し伸びがいい。
主人公が死ぬと終わり。
じゃ、まずは主人公VSホロウを簡単に…
問題はホロウも主人公もまっすぐ移動するだけという点…
ま、作ってみよう。
その前に取材? タワーディフェンスで作りたいものに近いものを調べてみる。
▼取材の結果
タワーディフェンス系で、タワーのHPが削られるというものは無かった。
▼進行状況
9/17
とりあえず鬼ごっこまでは出来た。
ちゃんとインスタンス名を指定しないと動かないことは理解した。
ダイナミックテキストでスコアを表示したいときは、変数を指定しないとエラーが出ることも理解した。
主人公に対して虚が近づいていく感じ……
虚が自分から近づいていって、やられるシーンを作ってみる
近づいたら、0,0の位置にワープさせて、また近づかせた
接触した瞬間にスコアを表示するようにした。
9/18
必要なものが大体解ってきたので書き出し。
弾
虚のHP
死神のHP
弾の射程距離
弾が虚に当たったときの処理
虚が死神に当たったときの処理
現在、虚が死神にぶつかったときに問答無用で切られるけれども、この処理を、HPが無くなったときに変更
斬術、白打、歩法、鬼道の設定を生かすため、ゲームへどう反映させるか考える。
各ユニットの持つステータスはHP、斬術、白打、歩法、鬼道の5つ
ブリーチの設定だと……
斬術……刀で切る
白打……素手による白兵
歩法……移動方法
鬼道……呪術。いわゆる魔法
斬術……近距離での攻撃力、攻撃範囲
白打……近距離での攻撃回数と、全体的な防御力。体裁きが上手いと言うことで。
歩法……移動速度。
鬼道……遠距離攻撃の射程、威力(四番隊はこれで回復の射程と回復量が決まる)
虚にも同様のステータスを割り振る
斬術は、範囲内に入った敵を問答無用で切り捨てるので、白打はやっぱり防御力に?
斬術での攻撃範囲には変化なしにする?
斬撃の範囲を円で指定。ま、得物の長さに依存するものだしこれはこれでOK?
ホロウの移動速度が反比例的だったので修正。一定速度で移動するようになった。
ついでに、歩法による移動速度の反映
鬼道による攻撃……と問題発生。
斬撃を作成した最、ムービークリップで射程範囲を決めたため、鬼道が広いと白兵しまくる。。。
ということは、斬撃の射程範囲をムービークリップに指定しなおす必要があると。
ムービークリップ名.ムービークリップ名の指定が出来る模様。試してみたらうまく行った。
ムービークリップなら、拡大縮小ができるので、斬撃の射程範囲も反映させることにする。
10,10にしたら斜め左上に移動した… 整列?
_widthと、_heightの指定はどうあがいてもずれるようなので、違う方法を試す。
あと、_x、_yによる座標の指定も微妙にずれるので使わないことにする
というわけでパーセントの指定を試してみる。
原因が大体判明
ムービークリップに変換してから中央揃えとかなんかいろいろやったからずれたらしい
というわけで作り直し……うぐー。
どうやら勘違い。
ムービークリップ内での_x、_yの指定は、ムービークリップの中心を基準に行われるらしい?
ためしに、ムービークリップじゃないところで指定してみる……成功
ただし、座標はやっぱりずれる。。。ムービークリップにした瞬間に、中央が座標の基準になってない……
相対パスで指定するときは、親のムービークリップの基準点が0に
絶対パスで指定するときは、全体の左上が基準に
で、ライブラリの編集画面から戻れないわけなんだが……
毎回消しては戻しをしなきゃいけないんだろうか……
ライブラリを開いて、ダブルクリックさえしなければ何とかなる様子
とりあえず、やり直したところまでは戻ってこれた。
座標を正確に指定する方法がわかったので、斬撃の大きさも変えてみる。
斬撃の範囲は、「斬術の値×0.2 + 30」極端に広くなることはない。
虚にも斬撃範囲と鬼道の範囲を追加
動かしてみる。鬼道の範囲が触れた瞬間に死亡。そりゃそうだ。
スクリプトの記述位置を変更した。
ユニットが当たったときの判定にし忘れていたので更新
そろそろ鬼道の攻撃について頑張る。
数値が上がれば上がるほど広くはしたいけど……
原作を見る限りじゃ、そんなべらぼうに広いって訳でもなさげ
30を斬魄刀の長さだと考えると、平均的な日本刀の刃渡りが、85-90cm
扱いやすい長さを考えたら、だいたい自分の親指の付け根からの長さから肩まで……
死神の身長は170越えが結構いるので、とりあえず170を平均として考えれば、やっぱり85ぐらい。
斬撃の範囲を360度にした都合状、体を限界まで伸ばした突きは含まれないものとして考えると、
半径は腕よりちょっと短い長さ+刃渡りよりちょっと短い長さ。
ほぼ同じと考えて、一番長い射程で30/2/2で7.5。
1で10cmが計算しやすい値かなという結論。
ほんで鬼道の射程。原作中で出てきた最大の大きさのものは、勇音のもののみで、
それ以外は割りと近距離でぶっ放しているっぽい。
鬼道の達人の雛森でさえ、鬼道のみで相手を殺すことはめったに無いので、本当に牽制用なのかも。
あるいは、始解など、斬魄刀を使いこなす上で重要な要素?
とすると、射程距離も多分数メートルクラスか。
ためしに10倍で。下手すると斬魄刀より射程が短いw
撃った弾が、自分と同じ動きをする……
移動したときに、移動した分だけマイナスを代入することで解決。
次、鬼道弾の当たり判定。まず、当たったら消えるところから。
とりあえず、当たったら手元に戻るようにしてみた
横にしか進みませんが何か?
初期値しか読み込んでいなかった模様。
とりあえず、当たったらもう一度角度を計算するようにしてみる。
弾の速さは鬼道に依存するようにしてみた
で、画面外に出たら戻ってくるようにしてみる。
はい、画面外にでたら戻るように指定するため、0を使用したら右下じゃないと攻撃してくれなくなりました。
そうでなくて。
というわけで、射程外に出たら消える方向で
テストのために鬼道を100にしたら激しく楕円になった。どっか入力ミスってる
修正。修正してみてわかったけれども、100にするとえげつない射程距離になる……
弾速を鬼道に依存させていたけれども、処理の関係ですり抜けることが判明。
ということは、弾速は一定以上は高くしない方がよさげ。
自機が移動すると、射程が動くため、本来の射程距離以上に動いたりする現象が……
ま、今回は諦める
ターゲットを指定する方法を頑張って調べてみる。
鬼道の射程内に虚がきたらターゲットに名前を代入。
なにも無かったら、ターゲットは空白になる。
一応実験は成功。ただし、弾が動かなくなる。戻す処理してない。。。
戻すと止まったりするバグと戦いながら終了。
鬼道は微妙に誘導しつつ飛ぶようになりました、と。
接触した相手のインスタンス名は取れないものか。。。
ま、いいや。
単純な攻撃がこれで出来るようになったので、次に虚からも攻撃させてみる。
凡ミスを繰り返しつつセロによる攻撃が可能に
斬撃も終了……でも、これって処理が逆な気がする。
統一しておこう。
複数の虚を出現させてみる。
ほぼ予想通りの挙動。最初の虚のみダメージが入り、他は無理。
fot文での代入が可能だったので、問題は解決。全ての敵に斬撃が入るように。
鬼道の射程内にいる敵も、当たればダメージが入る仕様にはなった。
問題は、角度の調整なんだが……
自分からの相対パスで知る方法は無いものか?
目標と、自分の座標を、共に相対パスで調べれば解る様子。
ターゲットになる相手が、その時鬼道の範囲内にいたもののうち、一番番号の古いものになる
新たに出現したとき、変なところに出ると、目の前にいないのに攻撃するというなぞ現象が起こる……
TDはそれでよかったけど、こっちは向かってこられているのでちょっと怖い気もする。
とりあえず、鬼道を下げて実験。そんなに違和感なし。
もうしばらく経って、システムがしっかりしてきたら考え直す。
虚の出現位置を絞ってみた。
このあたりもテストプレイを重ねてから調整。
今まで自分で動かしていたけれども、行動を自動的に動かさせてみる。
目標の設定をどうするかという問題がある……
単純にランダムにさせてみる。
弱い敵と当たれば当たるほどHPが回復する珍現象を修正。
修正していくうちにバグにぶち当たって虫つぶし。日付変わる
9/19
最初に敵をランダムに選択する所までは成功。
ただし、同じ敵をずっと追いかけ続けるのはあんまりよろしくは無い。
誰か一人を倒した時点でターゲットを変更するように修正してみる。
一応動いた。鬼道の挙動がちょっとおかしい。撃つときと撃たないときがある…
ループ処理のたび空白にしているのが問題。
当たるたびにターゲットを決めなおす設定に変更。
挙動がまともになってきた。
次、死神複数 VS 虚複数
ほぼok
ホロウ生成時に、1が欠番になるバグが気になる……
記述ミスで、shinigamiが出なかったときは普通に出た。意味が解らない……
フラッシュのバグと勝手に思い込んで、作業継続。
死神を量産するとバグるっぽいので、スタート時に死神は量産しないようにする。
増えたときに、変数を増やす方向で。
# 就寝
# 起床
寝てる間に思いついたこと
今ムービークリップの一番上に書いてあるスクリプトを、unitに書き換える。
相対パスは全て書き換える必要があるけれども、これで呼び出しが可能になるはず。
移動はしたものの、挙動がおかしい。
unitに一番上のムービークリップの座標を合わせるようにしたけどうまく行かないみたいだ。
移動速度が倍ほど違うのはなぜだろう……
原因がわからないので違うアプローチを試みてみる
とりあえず元に戻してみた。
スクリプトが消えるのならと、ユニット全体をムービークリップにしてみる
相対パスを深くして実験。
例によって動きが逆になる。
現在見ているのは、相対的な相手の位置……これはどこになるんだ?
ためしに、一つ上のムービークリップを狙わせてみる。やっぱり変な所へ移動。
組み合わせて計算しろとの事か。
ムービークリップのセンターをあわせてみたけれどもうまく行かず。
挙動を見た感じ、移動の向きはy軸が正しくて、x軸は逆っぽい
試しにマイナスをかけてみたが、どの道目標地点がずれてるので論外
訂正。絶対で見ようが相対で見ようが座標は変わらず。
親の座標からどれだけずれているかが表示される……わけでもないっぽい。
把握。親の座標は正確。で、この座標は親の基準となる座標を基準に行われる。ここまでok
問題は、自分自身の座標が、親の基準となる座標からみてどこか、なので目的地点と自分の位置がずれてる。
親のムービークリップは子のムービークリップがどれだけ動こうとずれることはない。
お互いの基準点を同じ位置にしてみればちゃんと動くかも。
ライブラリから呼び出してみる。
成功。で、馬鹿なことをしていたことに気がつく。
わざわざムービークリップで一つ上の親を作らなくてもレイヤーに記述できるじゃないか……
とおもったけどやっぱりだめぽ。イベントが取れない。ただ、初期化は出来るわけだから、次回は活用してみよう
どうも_rootにattachを入れると挙動が怪しいので、ボタンで死神を生成させてみよう。
というわけでフィールド生成に入りたいわけなんだが。
レイアウトでどうするかちょっと悩んだので、DTDを参考にしてみる。
DTDのレイアウト
戦うフィールド:
正方形。
敵がうろうろして、味方の砲台が配置される。
敵の入り口と、敵の出口が表示され、ここから外には配置できない。
砲台をクリックすると射程距離が表示され、ステータスは右に表示される
左上の、画面上部のすぐしたにモードが表示される。
背景:
フィールドとほぼ同じ広さに空白のある画像。
画面上部:
ヘッダ。スコア、レベル、ライフ、お金の表示。20PXぐらい?
黒ベースで、アルファチャンネルで透過
画面右部:
アイコン。音量とメニューへのショートカット、スタートボタン
スタートボタンをクリックするとゲーム開始。ゲーム中は次のレベルへのボタンになる。
次へのレベルのボタンをクリックすると、新しい敵が出現する。かわりに、スコアボーナス
ユニット。5X2でアイコンが並べられている。
マウスオーバーで説明。クリックで選択。
選択時にフィールドでクリックするとクリックしたへクスに配置される。
選択時、説明文にX印が出る。これを押すことで選択をキャンセルできる。
また、選択時には他のアイコンにマウスが移動しても説明は切り替わらない
フィールドに配置された砲台をクリックするとステータスが表示される。
売却と、強化のボタンが表示される。お金が足りない場合、強化のボタンは暗い。
強化には一定の時間がかかり、その間砲台は攻撃できない。
強力なものになればなるほど、強化中の時間は長くなる
背景は画面上部と同じく黒の透過
画面下段:
敵の情報。次にどのレベルの敵が来て、どんな特徴かが書かれている。
時間に合わせてゆっくりスクロールし、消えるとそのレベルの敵が出てくる。
7X1の表示。ただし、右部と重なる部分は表示されない。
背景は画面上部と同じく黒の透過。
へクスの判定:
何も無いところの場合、マウスカーソルの右下を基準にして上、左、左上の4マスを選択する。
放題がある場合、砲台を選択
概要:
次から次へと現れる敵をバトルフィールドで撃破する。
一体突破されるごとにライフが1減る
敗北条件:
ライフが0になったら敗北
勝利条件:
レベルによるけれども、一定時間が経過してライフが残っていれば勝ち
終了画面:
フィールドの壁とほぼ同じ大きさの角丸の画面が表示される
スコアがと、送信、キャンセルの3つがある。
スコアは、基本的に倒した数と、残りライフの25倍
そして、次のレベルへで蓄積されたタイムボーナスが表示され、
一番下にトータルとして合計が表示される。
ブリーチらしい背景ってなんだろう……
良くわからなくなったので、とりあえずカラブリから護廷十三隊の隊章をスキャン。アイコンに使う。
護廷十三隊の隊章は30X30で作成。レイアウトの作成にうつりたい。
著作権フリーを探してみたけれども使えそうなものなし。
昔とった写真を探したら、いい感じに使えそうなものがあったので採用。
なんとなく配置。雰囲気は出るけど、隊章の画像の荒さが目立つ。。。
牛乳がなくなったので買い物に行ってきた。
行き返りでシナリオというか設定的なものを考える
シナリオ
あなたは、現役を退いた死神である。
昔、虚と戦ったときに両足を失ったため、現地で戦うことは不可能になった。
戦えない悔しさと、一人でも多く生き残らせるため、自身は中央霊術院にて教鞭を振るう。
この日は、訓練生の指導として、野外での実習を行っていたが……どうやら虚の巣に誤って紛れ込んだらしい。
訓練生が戦闘中との報告を受けたあなたは、動けない体のまま、通信で指揮を執ることになった。
訓練生および死神を派遣し、ホロウの巣を殲滅せよ。
というわけで、全滅必至の戦いをするわけですよっていうか、クリアはないし。
レイアウト、スタートボタンまで作成。
ためしにスタートボタンを押したときに、今までロードでやっていたものを呼び出してみる。
挙動は今までと同じ。
死神だけ、ロード時に読み込ませてみる。
スタートボタンを押すと、ホロウはすべて表示されるが、死神が消える。。。
もしかしたら、同じ深度にはMCは一つしか配置されないのかも……?
ホロウの最大数を5までに設定して、
死神の最大数も5までにするなら番号の振り分けも楽か…
0-4 = ホロウ
5-9 = 死神
成功。多分。微妙にまた目標をうしなったっぽい。あとでしょり。
スコアの文字が読めないので修正。ついでにフォントもHG行書体にしてみる。
後でやるつもりだったけど気になったので。
相対パスのミスを発見。同じく、セロの発射で相対パスのミスを発見したので修正。
続いて、味方のステータスの確認画面……
右が広いからここに5人分作ってみる?
その前に。
スタートボタンじゃなくても、どこを押してもスタートする問題について。
ムービークリップでのクリックの監視は、フラッシュ内すべてで行われるらしい。
なので、ボタンはボタンとして作成したほうが無難な様子。
次、ボタンを押したらいつでもリセットが効く問題。
ボタンを押したら入れ替えるとかできるんだろうか???
テキストをダイナミックテキストにして、ゲームスタートのフラグを用意して試してみる。
ダイナミックテキストにすると、フォーカスしてしまって使い物にならない……
というわけで、プロパティを調べてみると、ムービークリップにもボタンと同じ機能というか、
同じASが記述できるようなので、ムービークリップにして試してみる。
ダイナミックテキストも問題なく変更されるし、ボタンのクリックもできるので解決。
リセット押したときダイアログがほしいかなぁ……
一段楽したので気が抜けつつある。
ここから先作らなくちゃいけないもの。
隊員5名のステータス表示画面
隊員5名のステータス格納部
隊員5名のレベルアップについて
部隊員の補充について。
まず配列から。ステータスは何がいるか?
とりあえず、HP、斬術、白打、歩法、鬼道、所属部隊、現存フラグ。
HPがなくなったら現存フラグに0を代入してムービークリップを消す。
いちいちどこかに格納しなくても、ステータス表示画面を配列代わりに使えば楽なことに気がついた。
というわけで、必要なものをまず作る。
およそのレイアウト完成。
かっこよくなってきたよwww
仮に配置したキャラクターのアイコンは1つにして全部消す。まずはチェックから。
感情移入のため、名前をつけれるようにしてみた訳だ。
えーと、まずはドラッグアンドドロップの実装から。
右の隊章をキャラ名の上にドラッグドロップすると人員が補充されたことになる。
その設定は隊章のクリックから始めるべきか?
まずは部隊の設定から始めることにした。
ドラッグアンドドロップの実験。自分自身をドラッグさせると、当然動くのでまずい。
分身を用意する必要があるので、半透明のものを作る。
……ムービークリップの名前は、数字で始まっちゃいけないのを忘れていた……
クリックしたときに分身を呼び出すことに成功。
ただ、リリースしてもついてくる。これはどっちに書くべきか?
分身のほうに書いてみたら失敗。本体のほうに書いてみる。
どっちもうまくいかない……
元のアイコンに記述しても同じような感じ。謎。
startDrag (this , false) ;
startDrag (this , true);
吸着しないととんでもないところからついてくるので、吸着しないとだめ。
把握した。ドラッグを終了させた段階で、リリースがどちらにも発生していない。
無理やり近づいてリリースするか、本体の上でリリースするしかない様子。
吸着の仕方の問題かも。
はい、把握。ムービークリップのセンターがずれてた。またこれか。
自動でセンターになってくれないものかなぁ……
問題発生。リリースが発生しないとな?
リリースを発生させようとしたら、もう一度その場でクリックしないとだめ。なんか違う
stopdrag();はとにかく発生すれば、ドラッグ中のものを停止させる機能っぽい。
Flash中は、ドラッグは1つしかできないので指定する必要がないのか。。。
on(releaseOutside);を発見。
>>
ポインタがボタンの内側にあるときにマウスボタンを押し、
その後ポインタがボタンの外側にあるときにマウスボタンを離した場合。
<<
まさにそれ。releaseはクリックした要素上じゃないと無意味なんだなと。
深度が楽しいことになりそうなので予約追加およびまとめ。
0-4 = ホロウ
5-9 = 死神
10-14 = ユニットのステータス確認用ボタン?
15 = ユニット1の所属隊アイコン表示用
16 = ユニット1の所属隊アイコン表示用
17 = ユニット1の所属隊アイコン表示用
18 = ユニット1の所属隊アイコン表示用
19 = ユニット1の所属隊アイコン表示用
名前の左にある所属部隊のところに、ドラッグ中のアイコンを持っていってドロップしたら所属。
違うところで離したらアイコンを画面外に。
はい。ドラッグドロップしたらえらいとことんでいきました。
子の座標だからずれるんだなとまたいまさら認識。
このままだと使いにくい気がしたので、ドロップの範囲を拡大してみようとしたけどむりぽ
素直に、隊章のところに落とす使用にしてみた。
例によってセンターをいじり忘れる。
現状だとドラッグしたものがそのまま張り付くのであんまりよろしくはない。
ということで、ライブラリから呼び出してみることにする。
今日はここまで?
9/20
0030帰宅
帰りしなに考えてたこと。
シナリオを変更する?
新しく考えたシナリオ
中央霊術院で少し調子にのったグループが誤って虚の巣に足を踏み入れてしまった。
巣にいる虚をすべて撃退しないことには、どうやら開放してもらえそうにない。
5人で力をあわせて生き残れ!
とすると、完成が楽。HPがなくなったら終わり。
レベルアップは、右のアイコンをレベルアップさせたいキャラの名前の横に持っていけば、
各隊の特徴にあわせたレベルの上がり方をする。
実に楽。というわけで、もう一度考えてみる。
まず、報酬はレベルに応じて得られることにする。
レベル1の虚は1を、レベル10の虚は10をそれぞれ落とす。
レベル10以降は初期パラメーターだとダメージが通らないので、
そこまでにたまる金額が基準になる。
10+20+30+40+50+60+70+80+90 = 450
とりあえずイメージ的な物
1番隊……コスト高い、全部大幅にあがる
2番隊……コスト高め、白打が大幅にあがる
3番隊……コスト高め、全部が上がる
4番隊……コスト安い、唯一HPが上がる
5番隊……コスト安い、全部が気持ち上がる
6番隊……コスト普通、全部が上がる。
7番隊……コスト普通、斬撃と拍打が上がる
8番隊……コスト普通、全部が上がる
9番隊……コスト普通、鬼道が上がる
10番隊……コスト普通、全部が上がる
11番隊……コスト安い、斬術が上がる
12番隊……コスト増える、全部が下がる。代わりにお金が手に入る
13番隊……コスト普通、全部上がる
コスト普通で全部上がるは考え直したほうがいいかも
逆に考えてみる。
コストが高い 全部が上がる
コストが高い 何かが大幅に上がる
コストが普通 全部が気持ちあがる
コストが普通 何かが上がる
コストが安い HPの回復
コストが安い 何かが気持ち上がる
コストが増える 全部下がる
で、さらにバラけさせて
全部が上がる 1
斬撃が大幅に上がる 11
白打が大幅に上がる 2
全部が気持ち上がる 3
斬撃が上がる 10
白打が上がる 9
鬼道が上がる 13
HPが上がる 4
斬撃が気持ち上がる 6
白打が気持ち上がる 7
歩法が気持ち上がる 8
鬼道が気持ち上がる 5
全部下がる 12
歩法や鬼道が上がり過ぎると問題があるので、そこは制限しつつ…
コスト HP 斬撃 白打 歩法 鬼道 備考
1 280 0 +7 +7 +2 +2 全部が上がる
2 150 0 0 +10 0 0 白打が大幅に上がる
3 140 0 +2 +2 +1 +1 全部が気持ち上がる
4 10 +50 0 0 0 0 HPが上がる
5 50 0 0 0 0 +1 鬼道が気持ち上がる
6 20 0 +1 0 0 0 斬撃が気持ち上がる
7 20 0 0 +1 0 0 白打が気持ち上がる
8 50 0 0 0 +1 0 歩法が気持ち上がる
9 80 0 0 +5 0 0 白打が上がる
10 80 0 +5 0 0 0 斬撃が上がる
11 150 0 +10 0 0 0 斬撃が大幅に上がる
12 0 -10 -10 -10 -10 -10 全部下がる。1000お金が増える
13 80 0 0 0 0 +2 鬼道が上がる
鬼道と歩法が上がるものはコストをワンランク上げてこんな感じ
とりあえずはこれでテストしてみよう。
せっかく作ったドラッグアンドドロップでの呼び出しだけど使わなさそう……
0200就寝
0930起きた
虚を倒してもお金が入らないことにいまさら気がついた。
それと、人員の追加補充がないならば、最初から死神を5名配置してしまおう。
お金の単位は「環」?
のようです。レベルアップに環を使うのは微妙に違う気がするなぁ。
シナリオに矛盾するしちょっと考え直そう。
虚が死んだらどうなるの?
詳しくは不明。とりあえず、霊子にかえることに勝手に妄想しておく。
暫定的にお金で処理しておく。
5vs5まで成功。お金が出ない……
ダイナミックテキストが編集できるのかも知れないと勝手に思い込んでいたけれども、大丈夫っぽいので作り直し。
お金の表示終了
前書いたやることをもう一度確認
隊員5名のステータス表示画面
隊員5名のステータス格納部
隊員5名のレベルアップについて:途中
部隊員の補充について。:なし
レベルアップから処理するのは間違いな気がした。。。
ステータスの表示から。ムービークリップのクリックで、説明用のダイナミックテキストに表示。
ステータス格納は、よく考えたらもう出来てるじゃないか。
ムービークリップのクリックだと、名前の変更が出来ないので、
クリックじゃなくマウスが来たらにしてみる……同じ結果。
仕方ないのでレベルアップ用のアイコンにする。
ダイナミックテキストで改行はどうやるんだろう。JavaScriptと同じ方法かなぁ……
おなじですた。
ステータスの表示完成。
死亡テスト。死ぬけど消えない。
消すムービークリップの指定を間違えていた……
ステータス表示、1キャラ分終了
同時に格納部も、1キャラ分終了
レベルアップの続き。レベルアップは成功。
制限。
ゲーム開始前にドラッグドロップできるのは問題なのでやらない。
お金が足りないのにレベルアップが反映されるのも問題なのでやらない。
メモ:フラグの変数名はgamestart
次、マウスオーバーで説明
1番隊のみ成功。
ステータス表示用のムービークリップを全キャラ分増やす。
横着してこぴぺしたら、全部変更される様子。
変数を利用して問題解決。
お金がなくてもドロップできる問題発生。
毎回数字をすべて変えるのがだるくなってきたので、変数で処理。
スタート時に斬った数とお金が表示されないのも問題でないかい?
ついでに分散してた処理を一箇所にまとめる。ソースが少し減る。
やっとどのユニットをレベルアップさせたかの判定に。一番隊で実験。成功。
ソースこぴぺの前に。
レベルアップに必要な金額かがたまっていない場合、使えない事を暗示するため、画像を暗くしたい。
明度を使おうとしたけど、プロパティが見つからなかったのでアルファチャンネルをいじる。成功。
隊章のムービークリップにインスタンス名を記述。
ドラッグ用の画像用意。
コピペ直前に、修正箇所が多いことに気がついて呼び出すクリップについては変数化。
消費するコストと、増えるパラメータについては終了。
ムービークリップのセンターがあってない
12番隊で死んでも生き残るバグ発見。
先に各隊のテキスト修正から。終了。
12番隊のバグについて。
最初の死神しか死んでない。
idの指定でミスってる様子。
どうやら、呼び出しもとの指定した関数よりも、loadの方が優先(遅い)らしい。
ためしに対象のムービークリップで宣言をせず、呼び出し元で勝手に作った変数を代入。成功。
暴挙だと思うんだがどうだろう。。。
デバッグ中
死んだ相手をターゲットにしている虚がとまった。
そりゃ、いないもんね……修正
虚の出現位置がヘッダー部分にめり込むので初期配置の_y軸の調整。
スタートボタンのロールオーバーでの説明文追加。
ホロウの上にマウスカーソルを持っていくと、そのホロウの説明
死神の上にマウスカーソルを持っていくと、死神の説明
死神が死んだとき、ホロウのターゲットが突如としていなくなり固まるので、修正。
序盤で、2体目がやたらとワープする現象を修正。レベル0だったのね。
レベルアップ用の隊章をクリックしてすぐ離すと、いつまでもついてくる現象を修正。
バグ取りほぼ終了。
バランス調整。
レベル3まではあまりにもまったりしていていらいらするので、もうちょっとすばやく。
移動は3ぐらいは欲しい。動いてる感じがない。
あと、ゲームオーバーの設定を。
無限ループは回避。メッセージ欲しい。
最初の画面に戻ることで、終わった感は出た。
攻撃と防御が同じ敵に当たった場合、いつまでたっても終わらない現象をどうしよう。
白打が防御になっているけど、値そのままを使わずに乱数で処理してみよう。
何度試してもこう着状態に陥るので、ソース確認。
攻撃と防御で同じ値なら処理をしないようになっていた。そりゃぁ、ダメージも通らんわ。
たまに無限ループに陥る。
虚の目標のつけ方に問題がある様子。
タイミングの問題か……
ホロウ側でループしないように処理してみた。
ほぼ完成。現状だと、マユリ様にお願いしてお金をもらわないと相当厳しいので、
初期のお金を増やしてみる。
ダメージ計算を変えたおかげで、難易度が跳ね上がった気がする……
お金を持ち越せる仕様はいいかもしれない。
HPが下がった死神がどれかわかりづらい。
死んだ死神についてももう少しわかりやすくしたい。
死んだらバツ印をだしてみた。わかりやすくなった。
フィールド上の死神にポイントを載せたら、コンパネ側にどの死神かわかるようにした。
わかりやすくなった。
コンパネ側で選んでいる死神がどの死神かわかるよう、ポインタが来た時点でわかるようにしてみた。
お金の引継ぎはあんまりよろしくないことがわかったので修正。
ゲームの画面的なものはこんな感じかな……
とりあえず公開。
Ver 0.1
製作日誌 死神ディフェンス
