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


C# RoomUser.MoveTo方法代码示例

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


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

示例1: OnUserWalk

        public override void OnUserWalk(GameClient session, RoomItem item, RoomUser user)
        {
            if (session == null || item == null || user == null)
                return;

            int distance = PathFinder.GetDistance(user.X, user.Y, item.X, item.Y);

            if (distance > 0 || user.GoalX == 0 && user.GoalY == 0)
                return;

            item.ExtraData = "0";
            item.UpdateState(false, true);
            item.InteractingUser = 1;

            if (user.GoalX != item.X || user.GoalY != item.Y)
                return;

            switch (user.RotBody)
            {
                case 3:
                case 4:
                case 5:
                    user.MoveTo(item.GetRoom()
                        .GetGameMap()
                        .CanWalk(item.SquareBehind.X, item.SquareBehind.Y, user.AllowOverride)
                        ? item.SquareBehind
                        : item.SquareInFront);
                    break;

                default:
                    user.MoveTo(item.GetRoom()
                        .GetGameMap()
                        .CanWalk(item.SquareInFront.X, item.SquareInFront.Y, user.AllowOverride)
                        ? item.SquareInFront
                        : item.SquareBehind);
                    break;
            }
        }
开发者ID:sgf,项目名称:Yupi,代码行数:38,代码来源:InteractorGroupGate.cs

示例2: PullUser

        private void PullUser(RoomUser roomuserTarget, RoomUser roomuserSource)
        {
            if (roomuserTarget == null)
                return;

            Point userSquare = roomuserTarget.Coordinate;
            Point closestSquare = roomuserTarget.Coordinate;

            Point a = new Point(userSquare.X, userSquare.Y++);
            if (CoordinationUtil.GetDistance(closestSquare, a) < CoordinationUtil.GetDistance(closestSquare, roomuserTarget.Coordinate))
                closestSquare = a;

            Point b = new Point(userSquare.X, userSquare.Y--);
            if (CoordinationUtil.GetDistance(closestSquare, b) < CoordinationUtil.GetDistance(closestSquare, roomuserTarget.Coordinate))
                closestSquare = b;

            Point c = new Point(userSquare.X++, userSquare.Y);
            if (CoordinationUtil.GetDistance(closestSquare, c) < CoordinationUtil.GetDistance(closestSquare, roomuserTarget.Coordinate))
                closestSquare = c;

            Point d = new Point(userSquare.X--, userSquare.Y++);
            if (CoordinationUtil.GetDistance(closestSquare, d) < CoordinationUtil.GetDistance(closestSquare, roomuserTarget.Coordinate))
                closestSquare = d;

            Point e = new Point(userSquare.X++, userSquare.Y--);
            if (CoordinationUtil.GetDistance(closestSquare, e) < CoordinationUtil.GetDistance(closestSquare, roomuserTarget.Coordinate))
                closestSquare = e;

            Point f = new Point(userSquare.X--, userSquare.Y);
            if (CoordinationUtil.GetDistance(closestSquare, f) < CoordinationUtil.GetDistance(closestSquare, roomuserTarget.Coordinate))
                closestSquare = f;

            roomuserTarget.MoveTo(closestSquare);
            roomuserSource.Chat(Session, string.Format(LanguageLocale.GetValue("commands.pulluser"), roomuserTarget.GetUsername()), true);
        }
开发者ID:BjkGkh,项目名称:R106,代码行数:35,代码来源:ChatCommandHandler.cs

示例3: PetFollowUser


//.........这里部分代码省略.........
            {
                if (FollowType == FollowType.Normal)
                {
                    NewX = RoomUser.X + 1;
                }
                else if (FollowType == FollowType.Left)
                {
                    NewY = RoomUser.Y + 1;
                }
                if (FollowType == FollowType.Right)
                {
                    NewY = RoomUser.Y - 1;
                }
            }
            else if (RoomUser.BodyRotation == 2)
            {
                if (FollowType == FollowType.Normal)
                {
                    NewX = RoomUser.X - 1;
                }
                else if (FollowType == FollowType.Left)
                {
                    NewY = RoomUser.Y - 1;
                }
                if (FollowType == FollowType.Right)
                {
                    NewY = RoomUser.Y + 1;
                }
            }
            else if (RoomUser.BodyRotation == 3)
            {
                if (FollowType == FollowType.Normal)
                {
                    NewX = RoomUser.X - 1;
                    NewY = RoomUser.Y - 1;
                }
                else if (FollowType == FollowType.Left)
                {
                    NewY = RoomUser.Y - 1;
                }
                if (FollowType == FollowType.Right)
                {
                    NewX = RoomUser.X - 1;
                }
            }
            else if (RoomUser.BodyRotation == 1)
            {
                if (FollowType == FollowType.Normal)
                {
                    NewX = RoomUser.X - 1;
                    NewY = RoomUser.Y + 1;
                }
                else if (FollowType == FollowType.Left)
                {
                    NewX = RoomUser.X - 1;
                }
                if (FollowType == FollowType.Right)
                {
                    NewY = RoomUser.Y + 1;
                }
            }
            else if (RoomUser.BodyRotation == 7)
            {
                if (FollowType == FollowType.Normal)
                {
                    NewX = RoomUser.X + 1;
                    NewY = RoomUser.Y + 1;
                }
                else if (FollowType == FollowType.Left)
                {
                    NewY = RoomUser.Y + 1;
                }
                if (FollowType == FollowType.Right)
                {
                    NewX = RoomUser.X + 1;
                }
            }
            else if (RoomUser.BodyRotation == 5)
            {
                if (FollowType == FollowType.Normal)
                {
                    NewX = RoomUser.X + 1;
                    NewY = RoomUser.Y - 1;
                }
                else if (FollowType == FollowType.Left)
                {
                    NewX = RoomUser.X + 1;
                }
                if (FollowType == FollowType.Right)
                {
                    NewY = RoomUser.Y - 1;
                }
            }
            #endregion

            if (Pet.X != NewX && Pet.Y != NewY)
            {
                Pet.MoveTo(NewX, NewY);
            }
        }
开发者ID:RootkitR,项目名称:Essential-5.1,代码行数:101,代码来源:PetBot.cs


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