謎解きの仕掛け1

 今回は1番最初に作成した謎解きの仕掛けについて紹介します。


今回は、床に設置された4つのスイッチを決められた順番で押すとドアが開くという仕掛けをつくりました。




ソースコードは以下の通りです。

function switchpaint(mpt) {

document.getElementById("sound2").play();

gc.fillStyle = "Black";

gc.fillRect(200, 300, 400, 400);

gc.fillStyle = "White";

gc.font = "12px serif";

gc.fillText("スイッチを押した", 250, 350);

switch (mpt) {

case 61:

if(flag1==true && flag2==false && flag3==false && flag4==false){

flag2=true;

}

else if(flag2==true || flag3==true){

flag2=false;

}

break;

case 62:

if(flag1==true && flag2==true && flag3==false && flag4==false){

flag3=true;

}

else if(flag3==true){

flag3=false;

}

break;

case 63:

if(flag1==false && flag2==false && flag3==false && flag4==false){

flag1=true;

}

else if(flag1==true || flag2==true || flag3==true){

flag1=false;

}

break;

case 64:

if(flag1==true && flag2==true && flag3==true && flag4==false){

flag4=true;

doorpaint();

}

break;

}

}

右下のスイッチがmpt63、左上のスイッチがmpt61、右上のスイッチがmpt62、左下のスイッチがmpt64になっています。
スイッチを押す順番は右下(mpt63)→左上(mpt61)→右上(mpt62)→左下(mpt64)です。
例えば、右下のスイッチ(mpt63)を押すとソースコードのcase63が実行され、flag1がtrueになります。
その状態で左上のスイッチ(mpt61)を押すとcase61が実行され、flag2がtrueになります。
そして、その次に右上のスイッチ(mpt62)を押すとflag3がtrue、最後に左下のスイッチ(mpt64)を押すとflag4がtrueになり、ドアが開くようになります。

ただし、正しい順番で押さないとドアが開かなくなります。
例えば、左上のスイッチ(mpt61)は、flag1がtrueになっている状態で押さないとflag2がtrueにならず、falseになるようにしています。他のスイッチも同じような仕組みです。
このようにして、今回はflagを利用して謎解きの仕掛けをつくってみました。

次回はまた別の謎解きの仕掛けを紹介したいと思います。

参考文献

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

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

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

使用した素材サイト

ぴぽや倉庫

https://pipoya.net/sozai/

DOTOWN

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











このブログの人気の投稿

はじめに

謎解きの仕掛け7

ゲーム完成&振り返り