今回はキーイベント使い方を紹介します。まずは、具体的にどんな使い方ができるのかを見ていきましょう
①Hキーを押すとHP(たいりょく)が増える
②Cキーを押して透明になり、もう一度押すと元に戻る
③W,A,S,Dキーを使ってスライムを操作
それでは、それぞれの作り方を紹介していきます。
①Hキーを押すとHP(たいりょく)が増える
Cキーを押した時について書きたい時は、このようなコードを使います
// キーを押したら
('▼ キー', Key.h).press(() => {
// ここに処理を書く
});
3行目、// ここに処理を書く
と書かれた所に、HPを増やすコードを書いていきます
// キーを押したら
('▼ キー', Key.h).press(() => {
player.hp += 1 // HPをふやす
});
すると……
Hキーを押すたびにHPが増えるようになりました!連打するほどHPアップ!!
②Cキーを押して透明になり、もう一度押すと元に戻る
まずは、不透明度のコードについて
Cキーを押して透明にするコードは以下のようになります
// キーを押したら
('▼ キー', Key.c).press(() => {
player.opacity = 0; // プレイヤーを透明にする
});
3行目のplayer.opacity = 0;
に注目!このコードはプレイヤーの見た目の不透明度についてのコードです
下の画像のように、この数字が0だと完全に透明。1の時は普通に見えるようになり、0.4などの数字にすることで、半透明になります。
今回は0を指定したので……
Cキーを押すと透明に!でも、このコードでは彼はずーーーっと透明のままです
では、if文を使って透明←→通常を切り替えられるようにしていきます
if文では、「もし、▲▲なら◯◯する」という条件分岐を指定できます
if (/* 条件 */) {
// 条件が合っている時はこのコードが読まれる
} else {
// 条件に合っていない時はこのコードが読まれる
}
これは、if文の書き方のイメージです。「プレイヤーは今見える状態か?」などの条件を指定し、
見える状態の時→プレイヤー透明にする
そうでない時(透明の時)→プレイヤーを見えるようにする
という条件分岐をします
では、具体的なコードにしてみましょう
// キーを押したら
('▼ キー', Key.c).press(() => {
if (player.opacity > 0) {
player.opacity = 0; // プレイヤーを透明にする
} else {
player.opacity = 1; // すがたをあらわす
}
});
3行目のif (player.opacity > 0)
に注目!ここで条件を指定しています
今回は「もしplayer.opacity
が0
より大きい時(完全に透明ではない時)」という条件にしてみました
このコードによって……
Cキーを押すたびに、透明←→通常を切り替えられるようになりました!!
③W,A,S,Dキーを使ってスライムを操作
プレイヤーは矢印↑←↓→キーで操作できますが、同時にW,A,S,Dキーを使って、スライムも操作できるようにしてみましょう
コードはこうなります
// ここからスライム
const item1 = new RPGObject(('▼ スキン', Skin.スライム));
item1.family = ('▼ ファミリー', Family.ドクリツ);
item1.hp = 3;
item1.atk = 1;
item1.locate(7, 5, 'map1');
// ここまでスライム
('▼ キー', Key.w).press(() => {
item1.walk(1, { x: 0, y: -1 }) // 上に歩く
});
('▼ キー', Key.a).press(() => {
item1.walk(1, { x: -1, y: 0 }) // 左に歩く
});
('▼ キー', Key.s).press(() => {
item1.walk(1, { x: 0, y: 1 }) // 下に歩く
});
('▼ キー', Key.d).press(() => {
item1.walk(1, { x: 1, y: 0 }) // 右に歩く
});
('▼ キー', Key.q).press(() => {
item1.attack(); // こうげきする
});
item1.walk(1, { x: 0, y: -1 })
という感じのコードで上下左右に歩くことができます
Qキーを押して攻撃できるようにもしてみました
スライムを操作してプレイヤーを倒す下克上!!
HackforPlayが二人で遊べるゲームになりました
ファミリーを変えて協力プレイ
先ほどのコードの中から、スライムの設定ついて書かれたコードを見てみましょう
3行目のitem1.family = ('▼ ファミリー', Family.ドクリツ);
に注目!
このボタンをクリックして、ファミリーをFamily.プレイヤー
に変えることで「このスライムはプレイヤーの仲間」という設定にできます
仲間同士では攻撃が当たりません。そのため、プレイヤーとスライム 二人協力プレイのゲームが作れるようになります