モンスターに攻撃できるようにする、ターン制度の作成
今回はモンスターに攻撃を行い、倒すプログラムを作成しました。また、今後のプログラムで敵も攻撃を仕掛けてくるようにしたいと考えているので、ターン数カウントの作成も行いました。 ~今回の内容~ 横に黒玉ねぎがいます。弱そうなので倒しちゃいましょう。スペースボタンで攻撃です。 黒玉ねぎを倒しました。 画像のように敵に攻撃できるようになっています。攻撃が当たったら音が流れるようになっています。また、敵にはそれぞれ体力が設定してあって、敵の体力を0にすると画面上から消えて敵を倒したことになります。 ~プログラムの説明~ タイトルのプログラムを解説する前に追加した要素の説明を行いたいと思います。少しだけ関係はありますが、タイトルの部分だけ知りたいという方は飛ばしていただいてもかまいません。 追加要素の説明 まず、細々と追加した要素の説明をします。 グローバル変数に turn、turncount、Ecount、chp、cstmを追加しました。 turnは経過ターン数を数える変数、 turncountはターンが経過したことを判定するために使用する変数、 Ecountはマップ上に存在するモンスターの数を認識するための変数、 chpは主人公の体力の値を、cstmは主人公のおなかの値を格納します。 関数mapselectの中です。 198行目にEcountの値をリセットするプログラムを記述しています。このゲームではプレイヤーが正常な位置に配置されるようにマップをロードする際に何度も何度もマップを作成します。モンスターが出現するたびにEcountを増やすことによってマップ上のモンスターの数を認識しようとしています。そのため、何度もマップをロードする過程でモンスターも生まれるので、Ecountがたくさん増えてしまいます。このプログラムは適切なモンスター数を把握するために記述しています。 205行目ではchara変数にplayerオブジェクトのインスタンスを格納しています。インスタンスにchp(体力)、cstm(おなか)、10(攻撃力)、10(防御力)を追加しました。 見にくくてすみません... Enemy変数とそのインス...