2018 ソフトウェア設計及び演習用の班Wiki
18::gr12::minemura
活動内容
5/25
各自持ち寄ったモジュール分けを基にしてプロトタイピングをする担当をそれぞれ割り振った。僕は主人公攻撃行動、つまり武器関係のモジュールのプロトタイピングを担当した。 担当モジュール 主人公攻撃行動(武器関係)
- 武器に対してレベルの概念、ATK値、属性、相性といったステータスの付与。
-
当たり判定(敵に触れたらATK値分のダメージを与える)
- intersect (例)if (sprite1.intersect(sprite2)) {
// 当たった
} else {
// 当たっていない
}
sprite1を敵キャラ、sprite2を武器とする。
- 武器のレベルアップ(敵を倒すと、倒した敵に付与された経験値を獲得し、一定経験値獲得時にレベルを1増やし、ATK値を任意の数値分増加させる(仮))
敵キャラがやられた関数 enemyDead=function() 敵キャラを倒す→武器に蓄積されている経験値のデータに倒した敵の経験値のデータを加算→上限突破→武器のレベル値を1増やす→ATK値を増加させる
上限突破しない場合→経験値を蓄積させるのみで終了
-
SE(Sound Effect)を載せる
- game.preload(・・・);
近距離武器、遠距離武器のそれぞれ二つに効果音をつける(仮)
SEはフリーのやつを使用する。
6/1
前回の続きで、プロトタイピングの続きを行った。プロトタイピングでどのように手を付ければよいか分からなかったため、「@IT(アットマークアイティー)の連載記事を参考にしてenchant.jsの学習をメインに授業時間を使った。
6/15
中間発表を行い、各モジュールでの問題点を洗い出した。その結果武器モジュールは単体での扱いが非常に難しいのと、自キャラのモジュール煮含めたほうが効率が良いなどの点から、武器モジュールを削除し、メニュー画面をメニューとUIのモジュールに分けるという結論に至った。それを受けて僕の担当が武器モジュールからUIモジュールに変更になった。
6/22
モジュール変更後最初の授業であったが、UIに必要なものを洗い出す作業から始めた。必要とされるUIの要素はHPバーの表示と画面上中央にフレームの設置及びそのフレーム内に現在主人公が装備している武器の表示の実装である。
6/29
何度もプログラムを修正しても実行されないエラーが発生した。F12キーでエラーを確認してもHTMLファイルのenchant.js、ui.enchant.js、ui.jsの読み込みに失敗しましたという文が出てくるのみで、原因をつかめなかった。 授業終了後、友人と実行などを行ったところ参考にしていたサンプルプログラムに問題があることがわかった。また、実行プログラムの階層がずれていたことも分かった。大きく修正を行い、次回の授業でHPやフレームの表示を実装できるまでには形にしたい。
7/6
HP表示について、ハートをアイコンで表示する方式からHPバーでHPを表示する方式に変更した。「scaleOrange.png」を連続して表示することでHPゲージを実装している。 ・ライフゲージの表示 var Emeter = new Group();
Emeter.x = 10;
Emeter.y = 5;
Emeter.num = 50;
var Ebar = new Sprite(54,15);
Ebar.image = game.assets['./img/bar.png'];
Ebar.x = 50;
Emeter.addChild(Ebar);
for(var i=0;i<Emeter.num;i++){
var scale = new Sprite(1,11);
scale.image = game.assets['./img/scaleOrange.png'];
scale.x = Ebar.x + 2 + i;
scale.y = 2;
Emeter.addChild(scale); } game.rootScene.addChild(Emeter);
game.keybind(76, 'life');
game.rootScene.addEventListener('enterframe',function(){
if(game.input.life){
Emeter.removeChild(Emeter.lastChild);
Emeter.num --;
}
});
7/13
何度も実行してもHPバーが表示されない事態が発生した。原因はHTMLファイルの内容を書き換えてなかったことと、ui.enchantを使用可能にする4枚の画像をディレクトリに保存していなかったことである。その後、ゲーム画面の上中央にフレームを設置して、それを表示する作業を行った。 ・武器アイコンの表示(weapon frame)
var Wframe = new Sprite(64,64); Wframe.image = game.assets["./img/frame.png"]; Wframe.x =270; Wframe.y =5; game.rootScene.addChild(Wframe);
7/27
メニュー担当と統合をするためにUIモジュールの完成を目指した。メニュー画面で割り当てたショートカットキーをゲーム画面で入力したら画面上中央に表示されているフレーム(アイコン)にそのショートカットキーで割り当てた武器が表示されるという流れなのだが、武器の画像やメニュー画面で割り当てたショートカットキーの情報をどうやって読み込むのかの問題が発生したので、メニュー担当と話し合い統合を考えた上でこちら側でメニュー画面の情報を読み込むための受け皿を用意して、画像の読み込みやショートカットキーの情報の読み込みを目指した。メニュー画面側の配列をこちら側に読み込ませるのが未完成のため早急な問題解決と統合作業を行う必要がある。
授業終了後、メニュー担当からプログラムを受け取り、UIとメニューのショートカットキーの部分のプログラムの統合作業を行った。しかし、結果としては統合することが出来なかったので、後日main.cにプログラムを統合させることで動作を確立させようと思った。
8/2
発表前日ということでUIの統合作業と、その他の不具合の修正作業を行った。結果としてはmain関数にUIのプログラムを直接打ち込むことで統合を行い、HPゲージの表示と減少、武器アイコンの表示とショートカットキーによる切り替え等の目的とした動作の実装に成功した。僕はそれ以外にがんちゃんを倒した後のクリア画面の表示の実装も行った。クリア画面に関しては、がんちゃんのHPの管理をしている敵AIモジュールのプログラムを一部変更することで実装することができた。あとは発表までに残された不具合をギリギリまで修正していきたいと思う。
8/3
発表当日はゲームの動作自体は問題なく動いてくれて良かったと思う。しかし、事前に発表の流れを決めておけばもっとスムーズな発表ができたと思った。最後まで残ってたメニュー画面のバグがchromeでだけ正常に動くということで、どうしてそうなったのかを時間があるときに調べてみたいと思った。この半年で自分は貴重な経験をさせてもらったと思う。今後の研究でも今回の開発で得たものを活かしていきたいと思った。
その他
後々重要になってくる世界観やシナリオの構想はこちら。物語の導入部分となっております。
18::gr12::scenario
物語の真相
18::gr12::ENDING
素材集
18::gr12::素材集
最終更新日:2018/08/10 23:21:38