謎解きの仕掛け2

 前回に引き続き、今回も謎解きの仕掛けを紹介します。

まず、新たにマップを追加したのでそちらを紹介します。

食堂

キッチン

今回作成したマップは上の2つです。

お城にあるような食堂をイメージしてつくりました。

食堂の隣には小さなキッチンのような部屋もつくりました。

食堂には7つのイスが並んでいて、それぞれテーブルの上にパンが乗った皿が置いてありますが、真ん中の赤いイスのところには何も置いていません。また、一番左端の席は皿だけ置いてあります。

食堂のとなりのキッチンに移動すると、テーブルの上にケーキが置いてあるので、まずそのケーキを入手します。

そして、その状態で食堂の赤いイスに移動すると、テーブルの上にケーキを置くことができます。

ケーキを置いたときの画面

すると、画面上側のカーテンが開き、新しいマップに移動できるようになります。


以下は今回作成したソースコードです

else if (mpt==85 && flag5==false) {

px = dx;

py = dy;

flag5=true

fieldpaint();

cakepaint();

}

キッチンでケーキを入手すると、flag5がtrueになるようにしています。


else if (mpt==72 && flag5==true && flag6==false) {
px = dx;
py = dy;
flag6=true//テーブルにケーキを置いた
fieldpaint();
kingpaint();
}

function kingpaint() {
document.getElementById("sound").play();
gc.fillStyle = "Black";
gc.fillRect(200, 300, 400, 400);
gc.fillStyle = "White";
gc.font = "12px serif";
gc.fillText("テーブルの上にケーキを置いた", 250, 350);
}

そして、flag5がtrueの状態で赤いイス(mpt72)に移動すると、kingpaintという関数が実行され、「テーブルにケーキを置いた」というメッセージが表示されます。また、flag6がtrueになります。

if (mpt==86 && flag6==true) {
gc.drawImage(imgCake, x * 40, y * 40, 40, 40);
}


else if (mpt==87 && flag6==true) {
stage = 8;
switch (e.keyCode) {
case 37: case 39: px = 19-dx; py = dy; break; //左or右
case 38: case 40: px = dx; py = 10-dy; break; //上or下
}
fieldpaint();
}
else if (mpt==88 && flag6==true) {
px = dx;
py = dy;
fieldpaint();
}

そして、flag6がtrueになると、赤いイスの前(mpt86)にケーキの画像が描画されます。

また、カーテンが開いた部分(mpt87,88)が通行可能になります。

以上が今回作成した仕掛けです。

次回も新しいマップなどを紹介していきます。

参考文献

田中賢一郎『ゲームで学ぶ JavaScript 入門』インプレス, 2015年

田中賢一郎『ゲームを作りながら楽しく学べる HTML5+CSS+JavaScript』インプレス, 2017年

田中賢一郎『ゲームで学ぶ JavaScript 入門 増補改訂版~ブラウザゲームづくりで HTML&CSS も身につく!』インプレス, 2022年

使用した素材サイト

ぴぽや倉庫

https://pipoya.net/sozai/

DOTOWN

https://dotown.maeda-design-room.net/










このブログの人気の投稿

はじめに

謎解きの仕掛け7

ゲーム完成&振り返り