public SceneStack() { // 番兵を追加しておく Scene s = new Scene(); s.Init(null); s.SetStack(this); scenes.Add(s); }
/// <summary> /// 次のシーンへ遷移する。現在のシーンをスタックから削除する。 /// </summary> /// <param name="s">遷移するシーン</param> protected void GotoScene(Scene s) { if (scenes.CurrentScene == this) { scenes.ChangeCurrentScene(s); } }
/// <summary> /// 次のシーンへ遷移する。現在のシーンをスタックに残す。 /// </summary> /// <param name="s">遷移するシーン</param> protected void CallScene(Scene s) { if (scenes.CurrentScene == this) { scenes.Push(s); } }
public void Push(Scene s) { nextOperations.Add(Operation.CreatePushOperation(s)); }
public void ChangeCurrentScene(Scene newScene) { nextOperations.Add(Operation.CreatePopOperation()); nextOperations.Add(Operation.CreatePushOperation(newScene)); }
public static Operation CreatePushOperation(Scene s) { Operation o = new Operation(); o.scene = s; o.action = Kind.Push; return o; }