昨日の復習をやってみた『そして伝説に…』 ★☆☆ – ビジボット

ビジネス

はじめに

今回のビジボットも、『GASの完全入門 基礎』の復習をしたいなと思って練習したのですが、別のところにこだわりが半端なくなってしまい、全然復習になららなかったです!(笑)
いや、全然って言う割ですが、意外とこうやってかけばいいんだ。この場合はこうするんだ。っていうのがわかってきました。
今日だけでは足りないので、明日も復習をしっかりやっていきます

それでは始めていきます!

1.作りたいもの

人をオブジェクトのコンストラクタとして昨日は勉強したので、『ヒューマン』を型として作ってみようと思いました。
まず、それぞれのJOBごとに必要な情報をまとめてみました。
画像データは以下サイトにて、お借りしました。ありがとうございます!
https://hiyokoyarou.com/tag/%E6%AD%A6%E5%99%A8/

person1

名前:フォースに好かれたチョン
JOB:フォース
HP:15
MP:10
こうげきりょく:15
ぼうぎょりょく:8
かしこさ:8
性格:おっちょこちょい
紹介
月に旅行に行った際に買ってきた温泉のおみやげ。
振るたびに『ボォオン』と音がなる。
暗い夜道を照らすのにちょうどいい。
=IMAGE(“http://drive.google.com/uc?export=view&id=1MDtpx5sHbcwB0q6j_oKVUWWXRgcTkWPQ”)

person2

名前:花の剣士チュン
JOB:剣士
HP:12
MP:15
こうげきりょく:10
ぼうぎょりょく:7
かしこさ:12
性格:おっとり
紹介
盾を使った行動がメイン。主に盾で殴る事が得意。盾以外で得意な事と言ったら花魔法を使える事。花魔法で相手を乗り物酔いにさせる事ができる。しかし、相手が乗り物酔いをしない場合は効果がない。
=IMAGE(“http://drive.google.com/uc?export=view&id=18CccewciUSEB5vwgKHr_o67qAA26OCQX”)

person3

名前:スナイパーチェン
JOB:銃
HP:14
MP:6
こうげきりょく:15
ぼうぎょりょく:8
かしこさ:12
性格:しっかりもの
紹介
こう見えて目が悪く、射撃の命中率は5割がいいところ。しかし、あまりに外しすぎると目に頼ることをやめ、目を閉じたまま寝てしまう。寝る事で消費した体力と精神的ダメージは回復するが、反省はしない。
=IMAGE(“http://drive.google.com/uc?export=view&id=1tQyFkcam9pNw0hU0t78OTd1EtMyL3ett”)

person4

名前:大魔導士ツン
JOB:賢者
HP:30
MP:50
こうげきりょく:10
ぼうぎょりょく:10
かしこさ:70
性格:うっかりもの
紹介
ぼーっと空を眺める事が好きな大魔導士ツン。しかし戦闘が始まれば人が変わったように戦う姿はまるで魔人と変わらない。
この大陸にその名を知らぬものはいないと言われている。
=IMAGE(“http://drive.google.com/uc?export=view&id=1htSnToHtJp9kd8ryM1xlSNzZAu9EFODZ”)

person5

名前:勇者見習いテン
JOB:勇者見習い
HP:13
MP:8
こうげきりょく:13
ぼうぎょりょく:12
かしこさ:10
性格:おちょうしもの
紹介
勇者のお兄ちゃんに憧れを抱く勇者見習いのテン。一生懸命お兄ちゃんの背中を追うが、彼は腹違いの子。勇者の血を引いていない事を知らない。しかし、彼は努力の天才で後に英雄となる。
=IMAGE(“http://drive.google.com/uc?export=view&id=1Rv7bibyCSxE5kxRySZRES23MyZzK4IU_”)

person6

名前:勇者アルスト
JOB:勇者
HP:50
MP:20
こうげきりょく:50
ぼうぎょりょく:25
かしこさ:20
性格:やさしい
紹介
ある日、大魔王ゾーマゾを倒すため旅に出る事になった勇者アルスト。光の弾を追い求め東の地を目指している。
彼はこの世の全ての希望であり、光である。
=IMAGE(“http://drive.google.com/uc?export=view&id=1tDWLsohVcgbKCsRBy0PoJIB6x2KYP79g”)

※IMAGE関数でGoogleDriveに入っているデータを呼び出してスプレッドシート上に表示します

2.実行画面

スプレッドシートのセル面積を小さくして、ドット絵っぽくしてみました!(笑)しかし、これが動くとかではないので、残念なのですが『▶︎ぼうけんをはじめる』をクリックすると名前を聞かれます。

チキンクエスト - ビジボット
チキンクエスト – ビジボット

クリックすると以下ウィンドウが立ち上がります。

名前入力 - ビジボット
名前入力 – ビジボット

名前を入力すると、JOBを選択する画面が表示されます。
ここに表示されている6つのJOBを選択して、入力フォームに入れます。

JOB選択 - ビジボット
JOB選択 – ビジボット

すると、2つ目の『キャラ』シートに画面が切り替わり、キャラクターの詳細情報が表示されます。

キャラ詳細 - ビジボット
キャラ詳細 – ビジボット

3.コード

全体で使っているソースコードです。
インスタンスや、コンストラクタや、prototypeを使った練習したかったんですが、色々時間の問題もあり思うようにできませんでした。。(笑)
だけど、この記述練習でも得た事がたくさんあったので、さらに明日へ繋げていきます。

4.コードの説明

まずはトリガーにポップアップウィンドウを表示する関数をセットして、クリックで実行されるように以下コードをセットしておく。
以下で、名前やJOBを選択させ、JOBの情報を引数としてselectJob()関数を呼び出す。

ここで、一致するJOBの情報を取得する。
本来DBに各personの情報があれば、それを取得して1つのpersonとしてセットする事ができるが、今回DBは関係ないため全て情報をセットする必要があります。
そして、var person = new Person(personArr);で、インスタンスを生成して、記述しているPersonコンストラクタが呼び出されます。

※一致しない場合の条件はまだ入れてないです

Personコンストラクタは取得したJOBのpersonデータを引数に処理を取得していきます。
ここで本当はthisを使いたかったのですが、配列の場合の取得方法がどうしてもエラーになってしまい断念しまいました。。。
そして、コンストラクタが実行終わると、呼び出し元(インスタンスした関数)に戻り、『Logger.log(person.msg());』が実行されます。

ここではインスタンスする必要のないデータをprototypeプロパティとして扱っています。インスタンスの中にいれちゃうと余計なメモリを食ってしまうから。
そこに関してはできたのか?という疑問と、これでいいのか?という疑いしかありません。。(笑)
ここで、キャラシートの情報をセットしていきます。

以上で本日は終わりです!
ExcelだとRPGがVBAでできるみたいですが、GASだったらどういったゲームが作れるか、ちょっとトライしてみたいなと感じました。
最後までお付き合い頂きありがとうございました!