本文整理汇总了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;
}
}
示例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);
}
示例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);
}
}