public SelectedStruct updateSelected(List <MenuItem> menuItems, CoreEngine coreEngine, Vector2 selectVector) { SelectedStruct x = new SelectedStruct(); x.repositionItems = reposition(menuItems); Vector2 wheelDirection = selectWheelDesiredPos - selectWheelPos; if (wheelDirection.LengthSquared() < 20) { selectWheelPos += wheelDirection / 1000; } else { selectWheelPos = selectWheelDesiredPos; } if (dist < maxDist) { dist += 20; } else if (dist > maxDist) { dist -= 20; } //set selected menuItem float selectAngle = (float)Math.Atan2((double)selectVector.Y, (double)selectVector.X); float initialAngle = MathHelper.ToRadians(-15); float increment = MathHelper.ToRadians(range) / menuItems.Count; x.selectedIndex = (int)((selectAngle - initialAngle + increment / 2) / increment); setSelected(menuItems, x.selectedIndex); //setSelected(selectIndex); setSelectedIndex(x.selectedIndex); return(x); }
public void getInput(bool doubleFix) { if (type != "Title") { //Get select vector and wheel rotation //Console.WriteLine("Core: "+ coreEngine); //Console.WriteLine("Input: " + coreEngine.inputEngine); Vector2 ControllerSelect = coreEngine.inputEngine.getMove(PlayerIndex.One) * 250; ControllerSelect.Y = -ControllerSelect.Y; if (ControllerSelect != Vector2.Zero) { ControllerSelect.Y += 450; } Vector2 selectVector = coreEngine.inputEngine.getLook() + new Vector2(ControllerSelect.X, ControllerSelect.Y); selectWheelRot = (float)Math.Atan2(selectVector.X, -selectVector.Y); //Selecting proper Item SelectedStruct x = updateSelected(menuItems, coreEngine, selectVector);//reposition for (int i = 0; i < menuItems.Count; i++) { menuItems[i].position = x.repositionItems[i].position; } menuActions = coreEngine.inputEngine.getMenuKeys(); List <MenuAction> menuActionsController1 = coreEngine.inputEngine.getMenuButtons(PlayerIndex.One); //Console.WriteLine(selectIndex); //Console.WriteLine(type); foreach (MenuAction m in menuActionsController1) { menuActions.Add(m); } } }
public SelectedStruct updateSelected(List<MenuItem> menuItems, CoreEngine coreEngine, Vector2 selectVector) { SelectedStruct x = new SelectedStruct(); x.repositionItems = reposition(menuItems); Vector2 wheelDirection = selectWheelDesiredPos - selectWheelPos; if (wheelDirection.LengthSquared() < 20) selectWheelPos += wheelDirection / 1000; else selectWheelPos = selectWheelDesiredPos; if (dist < maxDist) dist+=20; else if (dist > maxDist) dist -= 20; //set selected menuItem float selectAngle = (float)Math.Atan2((double)selectVector.Y, (double)selectVector.X); float initialAngle = MathHelper.ToRadians(-15); float increment = MathHelper.ToRadians(range) / menuItems.Count; x.selectedIndex = (int)((selectAngle - initialAngle + increment / 2) / increment); setSelected(menuItems, x.selectedIndex); //setSelected(selectIndex); setSelectedIndex(x.selectedIndex); return x; }