コード例 #1
0
ファイル: ProjectileDecorator.cs プロジェクト: JOCP9733/tank
        public ProjectileDecorator(IProjectileLogic p)
        {
            ProjectileLogic = p;
            ProtoProjectile tmp = (ProtoProjectile) ProjectileLogic.getUpperMost();

            Game = tmp.Game;
            Scene = tmp.Scene;
            Input = tmp.Input;
            Projectile = tmp.Projectile;
        }
コード例 #2
0
ファイル: Input.cs プロジェクト: JOCP9733/tank
        internal void Update()
        {
            // Set instance pointer to this object.
            Instance = this;

            // Force update all joysticks.
            Joystick.Update();

            // Update the previous button dictionaries.
            previousKeys = new Dictionary<Key, bool>(currentKeys);
            previousMouseButtons = new Dictionary<MouseButton, bool>(currentMouseButtons);
            for (int i = 0; i < previousButtons.Count; i++) {
                previousButtons[i] = new Dictionary<uint, bool>(currentButtons[i]);
            }

            // Update the previous press counts
            prevKeysPressed = currentKeysPressed;
            prevMouseButtonsPressed = currentMouseButtonsPressed;
            for (int i = 0; i < prevButtonsPressed.Count; i++) {
                prevButtonsPressed[i] = buttonsPressed[i];
            }

            // Update the current to the active keys.
            currentKeys = new Dictionary<Key, bool>(activeKeys);
            currentMouseButtons = new Dictionary<MouseButton, bool>(activeMouseButtons);
            for (int i = 0; i < currentButtons.Count; i++) {
                currentButtons[i] = new Dictionary<uint, bool>(activeButtons[i]);
            }

            foreach (var k in keyReleaseBuffer) {
                activeKeys[k] = false;
            }

            currentKeysPressed = keysPressed;

            keyReleaseBuffer.Clear();

            foreach (var m in mouseReleaseBuffer) {
                activeMouseButtons[m] = false;
            }

            currentMouseButtonsPressed = mouseButtonsPressed;

            mouseReleaseBuffer.Clear();

            for (int i = 0; i < Joystick.Count; i++) {
                foreach (var b in buttonReleaseBuffer[i]) {
                    activeButtons[i][b] = false;
                }

                buttonReleaseBuffer[i].Clear();
            }

            // Update the Joystick axes to use as buttons
            for (int i = 0; i < Joystick.Count; i++) {
                if (Joystick.IsConnected((uint)i)) {
                    foreach (JoyAxis axis in Enum.GetValues(typeof(JoyAxis))) {
                        float a = GetAxis(axis, i) * 0.01f;
                        if (a >= axisThreshold[axis]) {
                            if (!currentButtons[i][(uint)axisSet[axis].Plus]) {
                                buttonsPressed[i]++;
                            }
                            currentButtons[i][(uint)axisSet[axis].Plus] = true;
                        }
                        else {
                            if (currentButtons[i][(uint)axisSet[axis].Plus]) {
                                buttonsPressed[i]--;
                            }
                            currentButtons[i][(uint)axisSet[axis].Plus] = false;
                        }

                        if (a <= -axisThreshold[axis]) {
                            if (!currentButtons[i][(uint)axisSet[axis].Minus]) {
                                buttonsPressed[i]++;
                            }
                            currentButtons[i][(uint)axisSet[axis].Minus] = true;
                        }
                        else {
                            if (currentButtons[i][(uint)axisSet[axis].Minus]) {
                                buttonsPressed[i]--;
                            }
                            currentButtons[i][(uint)axisSet[axis].Minus] = false;
                        }
                    }
                }
            }

            mouseWheelDelta = currentMouseWheelDelta;
            currentMouseWheelDelta = 0;
        }
コード例 #3
0
ファイル: Input.cs プロジェクト: JOCP9733/tank
 internal Input(Game game)
 {
     Game = game;
     Instance = this;
     Init();
 }