📄 downslowcommand.cs
字号:
using System;
using DiamondPet.UserLayer;
namespace DiamondPet.LogicLayer.GameStateRunLogic.DownSlowCommand
{
#region 基类定义
/// <summary>
/// DownSlowCommand 的摘要说明。
/// </summary>
public class DownSlowCommand : Command
{
protected RunningState curRunningState;
protected DownSlow curDownSlow;
public DownSlowCommand()
{
}
public DownSlowCommand( RunningState gs )
{
curRunningState = gs;
curDownSlow = (DownSlow)gs;
}
}
#endregion
#region 不同命令状态
/// <summary>
/// 左方向键按下时的命令
/// </summary>
public class LeftKeyDownCommand : DownSlowCommand
{
#region 构造函数
public LeftKeyDownCommand (RunningState gs) : base(gs){}
#endregion
#region 执行逻辑
public override void ExecuteCommand()
{
if ( curDownSlow.leftKeyDown != true)
{
curDownSlow.leftKeyDown = true;
curDownSlow.leftCount = Environment.TickCount - GameConstResource.LeftRightTimeSpan;
curDownSlow.rightKeyDown = false;
curDownSlow.rightCount = 0;
}
}
#endregion
}
/// <summary>
/// 左方向键松开时的命令
/// </summary>
public class LeftKeyUpCommand : DownSlowCommand
{
public LeftKeyUpCommand(RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.leftKeyDown = false;
curDownSlow.leftCount = 0;
}
}
/// <summary>
/// 右方向键按下时的命令
/// </summary>
public class RightKeyDownCommand : DownSlowCommand
{
public RightKeyDownCommand (RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
if ( curDownSlow.rightKeyDown != true)
{
curDownSlow.rightKeyDown = true;
curDownSlow.rightCount = Environment.TickCount - GameConstResource.LeftRightTimeSpan;
curDownSlow.leftKeyDown = false;
curDownSlow.leftCount = 0;
}
}
}
/// <summary>
/// 右方向键松开时的命令
/// </summary>
public class RightKeyUpCommand : DownSlowCommand
{
public RightKeyUpCommand( RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.rightKeyDown = false;
curDownSlow.rightCount = 0;
}
}
/// <summary>
/// 下方向键按下时的命令,转换为快下状态
/// </summary>
public class DownKeyDownCommand : DownSlowCommand
{
public DownKeyDownCommand( RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.tickLast = 0;
curDownSlow.rightKeyDown = false;
curDownSlow.leftKeyDown = false;
curDownSlow.leftCount = 0;
curDownSlow.rightCount = 0;
//改变状态
curDownSlow.runStateManager.ChangeState( UserLayer.RunStateManager.DOWNFAST );
}
}
/// <summary>
/// 上方向键按下时的命令,改变形状
/// </summary>
public class UpKeyDownCommand : DownSlowCommand
{
public UpKeyDownCommand ( RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.runStateManager.gameDate.curGameItems.TransforItems();
}
}
/// <summary>
/// 确定键按下时的命令,转换为pause状态
/// </summary>
public class EnterKeyDownCommand : DownSlowCommand
{
public EnterKeyDownCommand ( RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.runStateManager.ChangeState( RunStateManager.NORMALPAUSE);
}
}
/// <summary>
/// 下一道具命令
/// </summary>
public class NextPropertyCommand : DownSlowCommand
{
public NextPropertyCommand( RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.runStateManager.gameDate.propertyQueue.MoveNext();
}
}
/// <summary>
/// 前一道具命令
/// </summary>
public class PrePropertyCommand : DownSlowCommand
{
public PrePropertyCommand( RunningState gs) : base(gs){}
public override void ExecuteCommand()
{
curDownSlow.runStateManager.gameDate.propertyQueue.MovePre();
}
}
/// <summary>
/// 使用道具命令
/// </summary>
public class UsePropertyCommand : DownSlowCommand
{
public UsePropertyCommand ( RunningState gs ) : base(gs){}
public override void ExecuteCommand()
{
object tmp = curDownSlow.runStateManager.gameDate.propertyQueue.FetchObj();
PropertyObject gp;
if ( tmp != null && tmp is PropertyObject)
{
gp = tmp as PropertyObject;
gp.UseProperty(curDownSlow);
}
}
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -