private void SwitchToMenu(DynamicMenuScene newMenu) { World.cam_Main.Transform.Position = newMenu.Hotspot.PositionGlobal; if (newMenu == _currentMenuScreen) return; if (_currentMenuScreen != null) _currentMenuScreen.Transition(SceneState.Inactive, null); _currentMenuScreen = newMenu; _currentMenuScreen.Transition(SceneState.Active, null); //Globals.Ninja.MoveNinja(_currentMenuScreen); }
private void SwitchToMenu(DynamicMenuScene newMenu) { World.cam_Main.Transform.Position = newMenu.Hotspot.PositionGlobal; if (newMenu == _currentMenuScreen) { return; } if (_currentMenuScreen != null) { _currentMenuScreen.Transition(SceneState.Inactive, null); } _currentMenuScreen = newMenu; _currentMenuScreen.Transition(SceneState.Active, null); //Globals.Ninja.MoveNinja(_currentMenuScreen); }
public static void SlideMenuView(DynamicMenuScene sender, DynamicMenuScene[] targets, Scene.SceneState finalSenderState, Scene.SceneState finalTargetState) { DynamicMenuScene target = null; if (TouchInput.IsScreenTouched) { World.cam_Main.Transform.Position += TouchInput.TouchDifference * -1.2f; } else if (TouchInput.ScreenIsNoLongerTouched) { target = GetClosestMenu(targets); if (target == sender) { target.Transition(target.State, null); return; } if (sender != null) sender.Transition(finalSenderState, target); target.Transition(finalTargetState, sender); } }
public static void SlideMenuView(DynamicMenuScene sender, DynamicMenuScene[] targets, Scene.SceneState finalSenderState, Scene.SceneState finalTargetState) { DynamicMenuScene target = null; if (TouchInput.IsScreenTouched) { World.cam_Main.Transform.Position += TouchInput.TouchDifference * -1.2f; } else if (TouchInput.ScreenIsNoLongerTouched) { target = GetClosestMenu(targets); if (target == sender) { target.Transition(target.State, null); return; } if (sender != null) { sender.Transition(finalSenderState, target); } target.Transition(finalTargetState, sender); } }
private static DynamicMenuScene GetClosestMenu(DynamicMenuScene[] menus) { float minDistance = 9999; int minIndex = 0; float distance = 0; for (int i = 0; i < menus.Length; ++i) { distance = Vector2.Distance(World.cam_Main.Transform.PositionGlobal, menus[i].Hotspot.PositionGlobal); if (distance < minDistance) { minDistance = distance; minIndex = i; } } return menus[minIndex]; }