<<5/18 モジュール分け>> *戦闘システムを担当 <<6/1>> *攻撃時のシステムを作成 <<6/22 戦闘画面、BGM>> *テキストボックス *戦う、アイテム、土下座(仮)コマンド *LV *HPバー *HPを数値で表記 *戦うコマンド→攻撃モジュールへ移行 *アイテムコマンド→レポート、過去問、単位をそれぞれ選択するかリターン *タイトル画面とOPで流すBGMを作成(ファミマの入店音と某タイトル曲を混ぜたアレンジ) 以上を作成 <<各モジュールについて>> *白枠のテキストボックスclass:Textframe **テキストボックスや、FIGHT、ITEMコマンドなどを囲むためのボックスをかけるようなクラスを作成。 **引数はx y z u r g b(x座標,y座標,幅、高さ、rgbは色の設定); **色を変えると枠ではなく、ボックス内の色が変わる。 *戦闘画面から、FIGHTやITEMを選択するまでの一連の流れをClassでまとめた。 <<6/29 戦闘画面>> *テキストボックスを相手の攻撃シーンに移行するとき、相手の攻撃(弾幕)合うようにtlを用いて移動させるようにした。 delayをうまく使わないと表現できず苦労した。 *dogezaコマンドをランダム関数を用いて、戦闘シーンから抜ける場合と抜けられない場合を作成 <<発表用及び今まで作った各モジュール説明>> *戦闘システム、戦闘画面の作成を担当 **最終的にcomanndclass.jsというソースファイルをui.enchant.jsのようにプラグインのような使い方ができるようにまとめた。chara.jsから戦闘シーンに入る際にcommandpart();で呼び出されている。 <<{Screenshot from 2018-08-03 01-03-01.png} *はじめの戦闘画面 **敵を表示 **敵のHPを表示 **動くテキストボックスを表示 **自キャラのLVを表示 **自キャラのHPを数値とバーで表示 **FIGHT,ITEM,DOGEZAコマンドを表示 <<{Screenshot from 2018-08-03 01-08-35.png} *FIGHTを選択 **テキストボックスが動いて攻撃シーンに移る。縦のバーが動いて再度クリックすると動くバーが止まり、赤いバーに近いほど攻撃力が高くなり、相手にダメージを与えることができる。(バーのx座標を数値として取ってきて攻撃力として計算)。こちらの攻撃が終わったあと、自動的に相手の攻撃に移る(こちらは玉川のバトル参照) **攻撃によって相手のHPを0にした場合、敵を倒してシーンから抜ける。なおこの時レベルが上がり各ステータスが上昇する。 **FIGHTを選択してから、相手の攻撃が終わるまでに重複してFIGHTを選択できるのだが、その場合にいつまでもFIGHTの画面が残り続けたりするバグがある。setTimeoutでシーンの移り変わりをしている関係上その間に新しいシーンが来ると良くない? *ITEMを選択 <<{Screenshot from 2018-08-03 01-16-20.png} *ITEMを選択 **ITEM選択画面に移る。CREDIT(単位)、OLDTEST(過去問)、REPORT(レポート)、RETURN(戻る)を選択できる。 CREDIT、OLDTEST,REPORTはマップ段階で拾ってきたアイテムの数に応じて数値が対応。 **CREDIT…攻撃力がかなり上がる。 **OLDTEST…体力が全回復する。 **REPORT…防御力が上がる。 **RETURN…前の画面に戻る。 **アイテムを使用したあとは相手の攻撃に移る。 <<{Screenshot from 2018-08-03 01-29-16.png} *DOGEZAを選択 **低確率でお許しをもらえる(倒した時と同じ処理になる)。めちゃピンチの時に使うとワンチャンあるかも?なお、お許しがもらえなかった時は相手の攻撃に移る。 **ただしお許しをもらえた場合、敵を倒した処理になるがレベルはアップしないため、次の戦闘がしんどくなるよ。 *他のモジュールとのつなぎ **相手のHPが0になった時戦闘が終了しmap画面に移る **自キャラのHPが0になった時GAMEOVER画面に移る **ラスボスのHPが0になった時ED画面に移る。 <<感想>> 最初、Javascript、enchant.jsの仕様がまったくわからず、Spriteとはなんぞ、HTMLにソースを記述すればいいのかなど、右往左往の状態から始まったが、自分で調べたり教えてもらったりしてるうちに自然と、この処理はどうすればうまくいくかがなんとなくわかるようになり、なんとか完成までこぎつけた。自分のモジュール内で苦労した点は、テキストの白い枠が動くような動作をさせて相手の攻撃シーンでも残り、かつ相手の攻撃が終わったら枠が戻る処理を書くのが大変であった。実際今でもFIGHTを連続で押すとバグってしまうのが心残りである。 そして、なんだかんだで一番大変だったのは他の人が作ったモジュールとの統合作業であった。自分で作るのと共同作業とでは難しさのベクトルが違うというか、情報の共有が以下に大事かということを知った。 また、個人的に心残りなのはBGM制作であり、タイトルで使うBGMは作ることができたのだが、他のBGMは作る時間がなく、結局フリーのBGMを使用することになってしまった。もっと時間をとってBGM制作に当てても良かったと思った。