/// <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); }
/// <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); }