📄 runstatemanager.cs
字号:
using System;
using DiamondPet.LogicLayer;
using DiamondPet.LogicLayer.GameStateRunLogic;
using DiamondPet.LogicLayer.GameStateRunLogic.Pause;
namespace DiamondPet.UserLayer
{
/// <summary>
/// RunStateManager 的摘要说明。
/// </summary>
public class RunStateManager : StateManager
{
/// <summary>
/// 运行状态
/// </summary>
public RunningState runningState;
/// <summary>
/// 选择方块
/// </summary>
public SelectBlock selectBlock;
/// <summary>
/// 消状态
/// </summary>
public ClearBlock clearBlock;
/// <summary>
/// 快下状态
/// </summary>
public DownFast downFast;
/// <summary>
/// 慢下状态
/// </summary>
public DownSlow downSlow;
/// <summary>
/// 正常暂停
/// </summary>
public NormalPause normalPause;
/// <summary>
/// 输还是赢
/// </summary>
public LostOrWin lostOrWin;
/// <summary>
/// 退出
/// </summary>
public OtherQuit otherQuit;
/// <summary>
/// 判断继续消还是selectblock
/// </summary>
public JudgeStateChange judgeStateChange;
/// <summary>
/// 升级状态
/// </summary>
public LevelUp levelUp;
/// <summary>
/// 父状态的管理
/// </summary>
public UserLayerStateManager userLayerStateManager;
/// <summary>
/// 游戏数据
/// </summary>
public GameDate gameDate;
#region 选择状态
public const int CLEARBLOCK = 0;
public const int DOWNFAST = 1;
public const int DOWNSLOW = 2;
public const int IMPLEMENTPROPERTY = 3;
public const int NORMALPAUSE = 4;
public const int LOSTORWIN = 5;
public const int OTHERQUIT = 6;
public const int SELECTBLOCK = 7;
public const int JUDGESTATECHANGE = 8;
public const int LEVELUP = 9;
#endregion
#region 初始化状态管理器
public RunStateManager(UserLayerStateManager u,StateRunOnePlayer one)
{
InitOnePlayerObject();
//界面层状态
this.userLayerStateManager = u;
//选择初始状态,为“选择block”状态,要改
ChangeState(SELECTBLOCK);
}
public RunStateManager(UserLayerStateManager u,StateRunTwoPlayer two)
{
InitTwoPlayerObject();
//界面层状态
this.userLayerStateManager = u;
//选择初始状态,为“选择block”状态
ChangeState(SELECTBLOCK);
}
private void InitOnePlayerObject()
{
//游戏数据
this.gameDate = new GameDate();
this.clearBlock = new ClearBlock(this);
this.downFast = new DownFast(this);
this.downSlow = new DownSlow(this);
//暂停系列
this.normalPause = new NormalPause(this);
this.lostOrWin = new LostOrWin(this);
this.selectBlock = new SelectBlock(this);
this.judgeStateChange = new JudgeStateChange(this);
this.levelUp = new LevelUp(this);
}
private void InitTwoPlayerObject()
{
this.lostOrWin = new LostOrWin(this);
this.otherQuit = new OtherQuit(this);
InitOnePlayerObject();
}
#endregion
#region 改变状态
public void ChangeState(RunningState rs)
{
if (rs != null){
this.runningState = rs;
}
return;
}
public void ChangeState(int StateIndex)
{
switch(StateIndex)
{
case CLEARBLOCK:
this.runningState = this.clearBlock;
break;
case DOWNFAST:
this.runningState = this.downFast;
break;
case DOWNSLOW:
this.runningState = this.downSlow;
break;
case NORMALPAUSE:
this.normalPause.returnState = this.runningState;
this.runningState = this.normalPause;
break;
case LOSTORWIN:
this.runningState = this.lostOrWin;
break;
case OTHERQUIT:
this.runningState = this.otherQuit;
break;
case SELECTBLOCK:
this.runningState = this.selectBlock;
break;
case JUDGESTATECHANGE:
this.runningState = this.judgeStateChange;
break;
case LEVELUP:
this.runningState = this.levelUp;
break;
}
//清除命令队列
//ClearStateQueue(this.runningState);
}
public void AnotherChangeState(int StateIndex)
{}
/// <summary>
/// 将状态的队列清空
/// </summary>
private void ClearStateQueue(RunningState r)
{
r.runCommandQueue.Clear();
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -