Exemplo n.º 1
0
    static public BattleFieldInputHandle Instance()
    {
        if (instance == null)
        {
            instance = new BattleFieldInputHandle();
        }

        return(instance);
    }
Exemplo n.º 2
0
    void OnApplicationQuit()
    {
        BattleFieldInputHandle.Instance().Destroy();

        GUIManager.Instance().Destroy();
        BulletManager.Instance().Destroy();

        UnitManager.Instance().Destroy();

        NetManager.Instance().Close();
    }
Exemplo n.º 3
0
    public void OnJoinRoom(int team_id, int player_id)
    {
        BattleField.battle_field.my_team_id   = team_id;
        BattleField.battle_field.my_player_id = player_id;

        FoW.FogOfWar.current.team = team_id;

        UnitManager.Instance().UpdateAllFogOfWar();

        // 更新摄像机
        Vector3 center = BattleFieldInputHandle.Instance().GetCurrentCameraCenter();

        Vector3 born_pos = born_point[player_id].Vector3Value();

        Vector3 offset = born_pos - center;

        Camera.main.transform.position += Vector3.right * offset.x + Vector3.forward * offset.z;

        // 初始化ui
        EventManager.Instance().PostEvent(EventConfig.EVENT_UI_OPEN, new object[] { "hero_operate" });
    }
Exemplo n.º 4
0
    // Use this for initialization
    void Start()
    {
        Application.targetFrameRate = 60;
        QualitySettings.vSyncCount  = 0;

        GUIManager.Instance().Init();
        BulletManager.Instance().Init();

        GDSKit.GDSMgr.Instance().InitGDSData();

        // 初始化
        battle_field             = new BattleField();
        BattleField.battle_field = battle_field;

        string map_path = "";

        map_path = FileManager.Instance().GetReadOnlyPath() + "MapData/map_block_info";

        battle_field.LoadMap(map_path);

        battle_field.SetBattleGridRenderer(battle_grid_renderer);
        BattleFieldInputHandle.Instance().Init();
        UnitManager.Instance().Init();
    }
Exemplo n.º 5
0
    public void MainThreadFunc(float delta_time)
    {
        // called every frame
        ProtoData proto_data = receiveBuffer.DequeueProtoData();

        while (proto_data != null)
        {
            //Debug.Log("收到消息包 id : " + proto_data.id);

            switch (proto_data.id)
            {
            case ResponseId.JoinRoomResult:
            {
                JoinRoomResult result = proto_data.proto as JoinRoomResult;

                // 逻辑层更新
                BL.BLTimelineController.Instance().OnJoinRoom(result.team_id);
                // 表现层更新
                BattleField.battle_field.OnJoinRoom(result.team_id, result.team_id);
            }
            break;

            case ResponseId.BattleStart:
            {
                BattleStart result = proto_data.proto as BattleStart;

                BL.BLTimelineController.Instance().Start();
                BattleFieldInputHandle.Instance().enabled = true;
            }
            break;

            case ResponseId.Tick:
            {
                TickList tick_list = proto_data.proto as TickList;
                //Debug.Log("收到同步帧 " + tick_list.frame);

                // 先把指令放入队列
                for (int i = 0; i < tick_list.list.Count; ++i)
                {
                    Tick tick = tick_list.list[i];

                    switch (tick.command_type)
                    {
                    case BL.TickCommandType.Move:
                    {
                        BL.BLIntVector3 dest_position;
                        dest_position.x = tick.x;
                        dest_position.y = 0;
                        dest_position.z = tick.y;

                        BL.BLCommandBase command = BL.BLCommandManager.Instance().CreateMove2PositionCommand(tick.cast_id, tick_list.frame, dest_position);

                        BL.BLCommandManager.Instance().AddCommand(command.cast_frame, command);
                    }
                    break;

                    case BL.TickCommandType.PUT_HERO:
                    {
                        BL.BLCommandBase command = BL.BLCommandManager.Instance().CreatePutHeroCommand(tick.team_id, tick_list.frame, tick.hero_index);

                        BL.BLCommandManager.Instance().AddCommand(command.cast_frame, command);
                    }
                    break;

                    case BL.TickCommandType.PURSUE_TARGET:
                    {
                    }
                    break;
                    }
                    ;
                }

                // 时间轴控制进行一帧, 分发指令
                BL.BLTimelineController.Instance().frame_received++;
            }
            break;

            default:
                break;
            }
            ;

            proto_data = receiveBuffer.DequeueProtoData();
        }
    }