Exemplo n.º 1
0
    public void Start()
    {
        PlayerFactory f = new PlayerFactory();
        PlayerProduct p = f.CreatePlayer(0, 0, bornPoint.transform.position);

        ICameraService m_cc = new CameraService(camera);

        ServiceLocator.prodive(m_cc);

        // 通过工厂创建时技能的释放过程。
        // 那技能的加载就是将技能命令提取出来。

        IInputEventService m_ec = new InputEventService();

        m_ec.SetKeyMapping();
        ServiceLocator.prodive(m_ec);

        IMapService m_mpc = new MapService(terrain);

        ServiceLocator.prodive(m_mpc);

        // 控制器分开比较好,根据不同类型的命令分别写
        IMoveControlService m_ic = new MoveControlService();

        m_ic.AddCommand(IInputEventService.VertualKey.MOVE_FORWARD, new MoveForwardCommandImpl());
        m_ic.AddCommand(IInputEventService.VertualKey.MOVE_BACK, new MoveBackCommandImpl());
        m_ic.AddCommand(IInputEventService.VertualKey.MOVE_LEFT, new MoveLeftCommandImpl());
        m_ic.AddCommand(IInputEventService.VertualKey.MOVE_RIGHT, new MoveRightCommandImpl());
        m_ic.AddCommand(IInputEventService.VertualKey.MOVE_JUMP, new MoveJumpCommandImpl());
        ServiceLocator.prodive(m_ic);

        IMouseControlService m_mc = new MouseControlService();

        m_mc.AddCommand(IInputEventService.VertualKey.MOUSE_RIGHTBUTTON_DOWN, new CameraRightCommandImpl());
        m_mc.AddCommand(IInputEventService.VertualKey.MOUSE_LEFTBUTTON_DOWN, new CameraLeftCommandImpl());
        m_mc.AddCommand(IInputEventService.VertualKey.MOUSE_MIDBUTTON_DOWN, new CameraZoomCommandImpl());
        ServiceLocator.prodive(m_mc);

        IActionControlService m_sc = new ActionControlService();

        m_sc.AddCommand(IInputEventService.VertualKey.NUM_1, ACTION_ID.ACTION_RangeAttack1);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_2, ACTION_ID.ACTION_RangeAttack2);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_3, ACTION_ID.ACTION_SpecialAttack1);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_4, ACTION_ID.ACTION_SpecialAttack2);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_5, ACTION_ID.ACTION_Uppercut);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_6, ACTION_ID.ACTION_DasheBackward);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_7, ACTION_ID.ACTION_DasheForward);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_8, ACTION_ID.ACTION_Kick);
        m_sc.AddCommand(IInputEventService.VertualKey.NUM_9, ACTION_ID.ACTION_MoveAttack1);

        ServiceLocator.prodive(m_sc);
    }
Exemplo n.º 2
0
 /// <summary>
 /// 执行脚本动作方法
 /// </summary>
 /// <param name="bl">The bl.</param>
 private void TimeLineRun(object bl)
 {
     for (int i = 0; i < this.Count; i++)
     {
         MouseControlService.ExecuteAction(this[i]);
         if (i + 1 == this.Count)
         {
             break;
         }
         TimeSpan splitSpan = TimeSpan.Parse(this[i + 1].ActionTime).Subtract(TimeSpan.Parse(this[i].ActionTime));
         Thread.Sleep(splitSpan);
     }
     IsRun = false;
 }
Exemplo n.º 3
0
        private void AddMouseControlService()
        {
            var directionHelper = ServiceProvider.GetService <DirectionHelper>();
            var movementHelper  = ServiceProvider.GetService <MovementEventRepository>();

            var pickupEventRepository               = ServiceProvider.GetService <PickupEventRepository>();
            var interactEventRepository             = ServiceProvider.GetService <InteractWithNpcEventRepository>();
            var finishDialogueRepository            = ServiceProvider.GetService <FinishDialogueEventRepository>();
            var interactWithSceneTransferRepository = ServiceProvider.GetService <InteractWithSceneTransferEventRepository>();
            var startDialogueEventRepository        = ServiceProvider.GetService <StartDialogueEventRepository>();
            var newTextEventRepository              = ServiceProvider.GetService <NewTextEventRepository>();

            var playerConfig = ServiceProvider.GetService <PlayerConfig>();

            var player = GameObject;

            var service = new MouseControlService(player.transform, movementHelper, directionHelper, pickupEventRepository,
                                                  interactEventRepository, newTextEventRepository, finishDialogueRepository, interactWithSceneTransferRepository, startDialogueEventRepository, playerConfig);

            Services.Add(service);
        }