当前位置: 首页>>代码示例>>C#>>正文


C# IGameObject.Ask方法代码示例

本文整理汇总了C#中IGameObject.Ask方法的典型用法代码示例。如果您正苦于以下问题:C# IGameObject.Ask方法的具体用法?C# IGameObject.Ask怎么用?C# IGameObject.Ask使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IGameObject的用法示例。


在下文中一共展示了IGameObject.Ask方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DistanceFor

        ///// <summary>
        ///// Расчитать расход топлива для прыжка
        ///// </summary>
        ///// <returns></returns>
        //public long CalculateFuelForJump(IGameObject obj, IGameObject targetLoc)
        //{
        //    var d = DistanceFor(obj, targetLoc);

        //}

        public double DistanceFor(IGameObject a, IGameObject b)
        {
            LocalPosition alp = LocalPosition.Empty, blp= LocalPosition.Empty;
            var ls = a.Ask(LocalSystem.Query.ResolvePosition)
                .Cast<QueryResponse<LocalPosition>>()
                .FirstOrDefault();
            if (ls != null)
                alp = ls.Value;
            ls = b.Ask(LocalSystem.Query.ResolvePosition)
                .Cast<QueryResponse<LocalPosition>>()
                .FirstOrDefault();
            if (ls != null)
                blp = ls.Value;
            while (!alp.Unknown && !blp.Unknown)
            {
                if (alp.LocalSystem.Level > blp.LocalSystem.Level)
                    alp = alp.LocalSystem.TranslateUp(alp.Coords);
                else if (alp.LocalSystem.Level < blp.LocalSystem.Level)
                    blp = blp.LocalSystem.TranslateUp(blp.Coords);
                if (alp.LocalSystem.Level == blp.LocalSystem.Level)
                    if (alp.LocalSystem != blp.LocalSystem)
                    {
                        alp = alp.LocalSystem.TranslateUp(alp.Coords);
                        blp = blp.LocalSystem.TranslateUp(blp.Coords);
                    }
                    else
                    {
                        
                        return alp.Coords.Distance(blp.Coords) * alp.LocalSystem.Resolution;
                    }
            }
            return double.PositiveInfinity;
        }
开发者ID:Basilid,项目名称:Spheres,代码行数:43,代码来源:!Mechanic.cs


注:本文中的IGameObject.Ask方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。