protected override void Run(Tank tank, C2B_TankFrameInfo message)
        {
            if (tank.Battle.StopGetPosInfo)
            {
                return;
            }
            TankFrameInfo tankFrameInfo = message.TankFrameInfo;

            //tank.Position = new Vector3(tankFrameInfo.PX,tankFrameInfo.PY,tankFrameInfo.PZ);
            //tank.Rotation = new Vector3(tankFrameInfo.RX,tankFrameInfo.RY,tankFrameInfo.RZ);
            tank.PX       = tankFrameInfo.PX;
            tank.PY       = tankFrameInfo.PY;
            tank.PZ       = tankFrameInfo.PZ;
            tank.RX       = tankFrameInfo.RX;
            tank.RY       = tankFrameInfo.RY;
            tank.RZ       = tankFrameInfo.RZ;
            tank.GunRX    = tankFrameInfo.GunRX;
            tank.TurretRY = tankFrameInfo.TurretRY;

            // Console.WriteLine($"坦克id = {entity.Id}");
            // Console.WriteLine($"坦克instanceId = {entity.InstanceId}");
            //
            // Console.WriteLine($"消息中坦克id = {message.TankFrameInfo.TankId}");
            //
            // Console.WriteLine($"坦克位置 = ({message.TankFrameInfo.PX},{message.TankFrameInfo.PY},{message.TankFrameInfo.PZ})");
        }
        protected override void Run(ETModel.Session session, B2C_TankReset message)
        {
            TankFrameInfo tankInfo = message.TankFrameInfo;

            Tank tank = ETModel.Game.Scene.GetComponent <TankComponent>().Get(tankInfo.TankId);

            tank.Position = new Vector3(tankInfo.PX * 1f / Tank.m_coefficient, tankInfo.PY * 1f / Tank.m_coefficient,
                                        tankInfo.PZ * 1f / Tank.m_coefficient);

            tank.Reset();
        }
        protected override void Run(ETModel.Session session, B2C_CreateTanks message)
        {
            Log.Warning("收到消息 B2C_CreateTanks");

            Log.Warning("进入战场,坦克数量=" + message.Tanks.Count);

            TankComponent tankComponent = ETModel.Game.Scene.GetComponent <TankComponent>();

            // 第一次进入战场,先创建自己坦克(创建其他坦克时需要判断与自己坦克关系,所以先创建自己坦克)
            if (tankComponent.MyTank == null)
            {
                foreach (TankInfoFirstEnter firstInfo in message.Tanks)
                {
                    TankFrameInfo tankInfo = firstInfo.TankFrameInfo;
                    if (tankInfo.TankId == PlayerComponent.Instance.MyPlayer.TankId)
                    {
                        Vector3 pos = new Vector3(tankInfo.PX * 1f / Tank.m_coefficient, tankInfo.PY * 1f / Tank.m_coefficient,
                                                  tankInfo.PZ * 1f / Tank.m_coefficient);

                        Vector3 rot = new Vector3(tankInfo.RX * 1f / Tank.m_coefficient, tankInfo.RY * 1f / Tank.m_coefficient,
                                                  tankInfo.RZ * 1f / Tank.m_coefficient);
                        Tank tank = TankFactory.Create(firstInfo, pos, rot);
                        break;
                    }
                }
            }

            foreach (TankInfoFirstEnter firstInfo in message.Tanks)
            {
                TankFrameInfo tankInfo = firstInfo.TankFrameInfo;
                if (tankComponent.Get(tankInfo.TankId) != null)
                {
                    continue;
                }

                Vector3 pos = new Vector3(tankInfo.PX * 1f / Tank.m_coefficient, tankInfo.PY * 1f / Tank.m_coefficient,
                                          tankInfo.PZ * 1f / Tank.m_coefficient);

                Vector3 rot = new Vector3(tankInfo.RX * 1f / Tank.m_coefficient, tankInfo.RY * 1f / Tank.m_coefficient,
                                          tankInfo.RZ * 1f / Tank.m_coefficient);

                Tank tank = TankFactory.Create(firstInfo, pos, rot);
            }

            Game.EventSystem.Run(EventIdType.CreateTanksFinish);
        }
Exemple #4
0
        public override void Run()
        {
            B2C_CreateTanks createTanks = new B2C_CreateTanks();

            Tank[] tanks = Game.Scene.GetComponent <TankComponent>().GetAll();

            foreach (Tank t in tanks)
            {
                TankFrameInfo tankFrameInfo = new TankFrameInfo();
                tankFrameInfo.TankId   = t.Id;
                tankFrameInfo.PX       = t.PX;
                tankFrameInfo.PY       = t.PY;
                tankFrameInfo.PZ       = t.PZ;
                tankFrameInfo.RX       = t.RX;
                tankFrameInfo.RY       = t.RY;
                tankFrameInfo.RZ       = t.RZ;
                tankFrameInfo.TurretRY = t.TurretRY;
                tankFrameInfo.GunRX    = t.GunRX;
                //createTanks.Tanks.Add(tankFrameInfo);
            }

            Log.Info("广播坦克");
        }