Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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;
        }