Пример #1
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public override bool Update(float dt)
        {
            ePlayCommand com = input.GetCurrentCommand();

            if (com == ePlayCommand.PauseAndResume)
            {
                return(false);
            }
            return(true);
        }
Пример #2
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="_dt"></param>
        /// <returns></returns>
        public override sealed bool Update(float dt)
        {
            if (!isPlaying)
            {
                return(false);
            }

            ePlayCommand command = input.GetCurrentCommand();

            BlockStatus attemptPut = current;

            switch (command)
            {
            case ePlayCommand.Rotate:
                attemptPut.RotateNum++;
                break;

            case ePlayCommand.Right:
                attemptPut.Pos.x++;
                break;

            case ePlayCommand.Left:
                attemptPut.Pos.x--;
                break;

            case ePlayCommand.Down:
            case ePlayCommand.DownImmediately:
                duration = speed;
                break;

            case ePlayCommand.PauseAndResume:
                onPause();
                return(true);
            }

            lock (threadLockObj)
            {   // 通信対戦時にここで書き換えている値を参照するのでlock
                mutableUpdate(attemptPut, command, dt);
            }

            return(true);
        }