コード例 #1
0
ファイル: Keyboard.cs プロジェクト: uscomics/Gold_Venus
        public DirectionType GetDirection()
        {
            if (0 < directionBuffer.queue.Count)
            {
                BufferedDirection bufferedDirection = directionBuffer.queue.Peek() as BufferedDirection;
                if ((Time.realtimeSinceStartup >= directionBuffer.lastEventTime + bufferedDirection.delay) ||
                    (0 == bufferedDirection.delay))
                {
                    directionBuffer.queue.Dequeue();
                    directionBuffer.lastEventTime = Time.realtimeSinceStartup;
                    return(bufferedDirection.direction);
                }
            }
            // W v: +, h: 0 (UP)
            // A v: 0, h: - (LEFT)
            // S v: -, h: 0 (DOWN)
            // D v: 0, h: + (RIGHT)
            float vert = Input.GetAxis("Vertical");
            float horz = Input.GetAxis("Horizontal");

            if (0 == vert && 0 == horz)
            {
                if (Input.GetKeyDown(KeyCode.Backspace))
                {
                    return(DirectionType.Stop);
                }
                if (Input.GetKeyDown(KeyCode.Delete))
                {
                    return(DirectionType.Stop);
                }
                return(DirectionType.None);
            }
            if (vert < 0)
            {
                if (horz < 0)
                {
                    return(DirectionType.SW);
                }
                if (horz > 0)
                {
                    return(DirectionType.SE);
                }
                return(DirectionType.South);
            }
            if (vert > 0)
            {
                if (horz < 0)
                {
                    return(DirectionType.NW);
                }
                if (horz > 0)
                {
                    return(DirectionType.NE);
                }
                return(DirectionType.North);
            }
            if (horz < 0)
            {
                return(DirectionType.West);
            }
            return(DirectionType.East);
        }
コード例 #2
0
        public void ForceStop()
        {
            BufferedDirection stop = new BufferedDirection(DirectionType.Stop);

            _keyboardScript.directionBuffer.queue.Enqueue(stop);
        }