示例#1
0
 /// <summary>
 /// 是否处于目标屏范围内
 /// </summary>
 /// <param name="target">目标精灵</param>
 /// <returns></returns>
 public bool InSight(SpriteBase target)
 {
     bool result = true;
     switch (target.SpaceLayer) {
         case SpaceLayers.Ground:
             switch (this.SpaceLayer) {
                 case SpaceLayers.Ground:
                     result = Math.Abs(this.Position.X - target.Position.X) > Application.Current.Host.Content.ActualWidth || Math.Abs(this.Position.Y - target.Position.Y) > Application.Current.Host.Content.ActualHeight ? false : true;
                     break;
                 case SpaceLayers.Sky:
                     result = false;
                     break;
             }
             break;
         case SpaceLayers.Sky:
             switch (this.SpaceLayer) {
                 case SpaceLayers.Ground:
                     result = Math.Abs(this.Position.X - target.Position.X) > Application.Current.Host.Content.ActualWidth || Math.Abs(this.Position.Y - target.Position.Y) > Application.Current.Host.Content.ActualHeight ? false : true;
                     break;
                 case SpaceLayers.Sky:
                     result = Math.Abs(this.Position.X - target.Position.X) > Application.Current.Host.Content.ActualWidth * 2 || Math.Abs(this.Position.Y - target.Position.Y) > Application.Current.Host.Content.ActualHeight * 2 ? false : true;
                     break;
             }
             break;
     }
     return result;
 }
示例#2
0
 /// <summary>
 /// 设置影子是否可见
 /// </summary>
 /// <param name="sprite">精灵</param>
 public void SetShadowVisibleTo(SpriteBase sprite)
 {
     EntityObject shadow = shadowList.SingleOrDefault(X => X.ID == sprite.ID);
     if (shadow != null) { shadow.IsVisible = sprite.IsVisible; }
 }
示例#3
0
 /// <summary>
 /// 设置影子缩放
 /// </summary>
 /// <param name="sprite"></param>
 public void SetShadowScale(SpriteBase sprite, double value)
 {
     EntityObject shadow = shadowList.SingleOrDefault(X => X.ID == sprite.ID);
     if (shadow != null) { shadow.RenderTransform = new ScaleTransform() { CenterX = shadow.Center.X, CenterY = shadow.Center.Y, ScaleX = value, ScaleY = value }; }
 }
示例#4
0
 /// <summary>
 /// 设置影子位置
 /// </summary>
 /// <param name="sprite">精灵</param>
 public void SetShadowPositionTo(SpriteBase sprite)
 {
     if (sprite.IsVisible && ShadowType != ShadowTypes.None) {
         //if (sprite is AnimationBase) { MessageBox.Show(sprite.ID.ToString()); }
         EntityObject shadow = shadowList.SingleOrDefault(X => X.ID == sprite.ID);
         if (shadow != null) { shadow.Position = sprite.Position; }
     }
 }
示例#5
0
 /// <summary>
 /// 设置精灵是否可见
 /// </summary>
 /// <param name="sprite"></param>
 /// <param name="visible"></param>
 public void SetSpriteVisible(SpriteBase sprite, bool visible)
 {
     sprite.IsVisible = visible;
     if (ShadowType != ShadowTypes.None) {
         SetShadowVisibleTo(sprite);
         SetShadowPositionTo(sprite);
     }
 }