JavaScriptで脱出ゲームを作る方法
(オブジェクトの配置~アイテムの取得)

オブジェクトの配置

ここでは2種類のオブジェクトを部屋内に配置します。

1. 画像オブジェクトの追加
    
	AddImage("Sq", "./img/item_sq.png");
        
表示する画像をinitializeで登録します。
    
function ShowE() {
  	sceneManager.AddObject("Sq", 200, 320);
	sceneManager.AddDefaultLR("sceneN", "sceneS");
}
        
sceneEに四角のオブジェクトを(200, 320)に追加します。
座標系に関してはこちら

2. クリックポイント(透明のオブジェクト)の追加
    
function ShowN() {
  	sceneManager.AddEmptyObject(165, 65, 430, 335, DoorCB);//透明のオブジェクトの追加    
	sceneManager.AddDefaultLR("sceneW", "sceneE"); 
}
      
sceneNのドアの領域に透明のオブジェクトを追加します。
左上の座標が(165, 65)右下の座標が(430, 335)です。
座標系に関してはこちら
クリックされれるとDoorCBが呼び出されます。
    
function DoorCB() {
	messageManager.ShowMessage("鍵がかかっている。");
}
      
ここではmessageManager.ShowMessage()を使用してクリックされたときはメッセージを表示しています。

以上でオブジェクトの配置が行えます。クリックでサンプル起動
現段階のコード

アイテムの取得

上で置いた四角オブジェクトをアイテムとして取得しましょう。
    
	itemManager.AddItem("shikaku", "Sq");
        
画像"Sq"を名前"shikaku"でアイテムとして登録します。
     
    		sceneManager.AddObject("Sq", 200, 320, SqCB);
        
ShowE()内のAddObject()の第4引数にコールバックを追加します。
     
function SqCB() {
	itemManager.GetItem("shikaku");
	messageManager.ShowMessage("四角を手に入れた。");
	sceneManager.RedrawScreen();
}
        
追加したコールバックSqCB()を記載します。
GetItem()で"shikaku"を取得しています。
これで"shikaku"は取得できますが、この状態では取得したのに画面から四角が消えません。
消すためにまず sceneManager.RedrawScreen()を呼び出します。
sceneManager.RedrawScreen()を呼び出すと現在表示されているシーンのコールバックが再度、呼び出されます。(今回はShowE())
ShowEを再度呼んでも四角が再度表示されるだけなのでAddObject()に条件を追加します。
     
	if (!itemManager.IsHave("shikaku"))
		sceneManager.AddObject("Sq", 200, 320, SqCB);
        
itemManager.IsHave("shikaku")を呼び"shikaku"が取得済みか確認し、取得していない時のみ四角を表示するようにしました。

以上でアイテムの取得が行えます。クリックでサンプル起動
現段階のコード


戻る