オブジェクトの配置
ここでは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"が取得済みか確認し、取得していない時のみ四角を表示するようにしました。
以上でアイテムの取得が行えます。クリックでサンプル起動
現段階のコード