Example #1
0
		public static Polygon MakePolygon(LImage image) {
			if (image == null) {
                throw new RuntimeException("Image is null !");
			}
			return MakePolygon(image.GetIntPixels(), image.GetWidth(),
					image.GetHeight());
		}
Example #2
0
 public static LImage GetResize(LImage image, int w, int h)
 {
     if (image == null)
     {
         return null;
     }
     if (image.width == w && image.height == h)
     {
         return image;
     }
     LImage result = LImage.CreateImage(w, h, image.HasAlpha());
     LGraphics g = result.GetLGraphics();
     g.DrawImage(image, 0, 0, w, h, 0, 0, image.GetWidth(),
     image.GetHeight());
     g.Dispose();
     return result;
 }
Example #3
0
        public static LImage GetResize(LImage image, int w, int h)
        {
            if (image == null)
            {
                return(null);
            }
            if (image.width == w && image.height == h)
            {
                return(image);
            }
            LImage    result = LImage.CreateImage(w, h, image.HasAlpha());
            LGraphics g      = result.GetLGraphics();

            g.DrawImage(image, 0, 0, w, h, 0, 0, image.GetWidth(),
                        image.GetHeight());
            g.Dispose();
            return(result);
        }
Example #4
0
 /// <summary>
 /// 判定指定的两张图片之间是否产生了碰撞
 /// </summary>
 ///
 /// <param name="src"></param>
 /// <param name="x1"></param>
 /// <param name="y1"></param>
 /// <param name="dest"></param>
 /// <param name="x2"></param>
 /// <param name="y2"></param>
 /// <returns></returns>
 public bool isPixelCollide(LImage src, float x1, float y1, LImage dest,
         float x2, float y2)
 {
     float width1 = x1 + src.GetWidth() - 1, height1 = y1 + src.GetHeight()
             - 1, width2 = x2 + dest.GetWidth() - 1, height2 = y2
             + dest.GetHeight() - 1;
     int xstart = (int)Loon.Utils.MathUtils.Max(x1, x2), ystart = (int)Loon.Utils.MathUtils.Max(y1, y2), xend = (int)Loon.Utils.MathUtils.Min(width1, width2), yend = (int)Loon.Utils.MathUtils.Min(height1, height2);
     int toty = Loon.Utils.MathUtils.Abs(yend - ystart);
     int totx = Loon.Utils.MathUtils.Abs(xend - xstart);
     for (int y = 1; y < toty - 1; y++)
     {
         int ny = Loon.Utils.MathUtils.Abs(ystart - (int)y1) + y;
         int ny1 = Loon.Utils.MathUtils.Abs(ystart - (int)y2) + y;
         for (int x = 1; x < totx - 1; x++)
         {
             int nx = Loon.Utils.MathUtils.Abs(xstart - (int)x1) + x;
             int nx1 = Loon.Utils.MathUtils.Abs(xstart - (int)x2) + x;
             try
             {
                 if (((src.GetPixel(nx, ny).PackedValue != LSystem.TRANSPARENT))
                         && ((dest.GetPixel(nx1, ny1).PackedValue != LSystem.TRANSPARENT)))
                 {
                     return true;
                 }
             }
             catch (Exception e)
             {
                 Loon.Utils.Debugging.Log.Exception(e);
             }
         }
     }
     return false;
 }
Example #5
0
 public PShadowEffect(LImage img, LImage back, int x, int y, int w, int h)
 {
     if (deasilTrans == null || widdershinTrans == null)
     {
         deasilTrans = new Color[max_pixel];
         for (int i = 0; i < max_pixel; i++)
         {
             deasilTrans[i] = new Color(i, i, i);
         }
         int count = 0;
         widdershinTrans = new Color[max_pixel];
         for (int i = 0; i < max_pixel; i++)
         {
             widdershinTrans[count++] = deasilTrans[i];
         }
     }
     this.SetLocation(x, y);
     this.width = w;
     this.height = h;
     this.visible = true;
     LImage temp = null;
     if (back == null)
     {
         this.scaleWidth = width / 2;
         this.scaleHeight = height / 2;
         temp = GraphicsUtils.GetResize(img, scaleWidth, scaleHeight);
         this.image = LImage.CreateImage(scaleWidth, scaleHeight, true);
         this.finalDrawPixels = temp.GetPixels();
         this.nowDrawPixels = (Color[])CollectionUtils.CopyOf(finalDrawPixels);
         if (temp != null)
         {
             temp.Dispose();
             temp = null;
         }
     }
     else
     {
         this.scaleWidth = width / 2;
         this.scaleHeight = height / 2;
         temp = GraphicsUtils.GetResize(img, scaleWidth, scaleHeight);
         this.image = LImage.CreateImage(scaleWidth, scaleHeight, true);
         if (back.GetWidth() == scaleWidth
                 && back.GetHeight() == scaleHeight)
         {
             this.finalBackgroundPixels = back.GetPixels();
             this.backgroundPixels = (Color[])CollectionUtils
                     .CopyOf(finalBackgroundPixels);
         }
         else
         {
             LImage tmp = GraphicsUtils.GetResize(back, scaleWidth,
                     scaleHeight);
             this.finalBackgroundPixels = tmp.GetPixels();
             if (tmp != null)
             {
                 tmp.Dispose();
                 tmp = null;
             }
             this.backgroundPixels = (Color[])CollectionUtils
                     .CopyOf(finalBackgroundPixels);
         }
         this.finalDrawPixels = temp.GetPixels();
         this.nowDrawPixels = (Color[])CollectionUtils.CopyOf(finalDrawPixels);
     }
     this.SetBlackToWhite(flag);
     if (temp != null)
     {
         temp.Dispose();
         temp = null;
     }
     if (img != null)
     {
         img.Dispose();
         img = null;
     }
     if (back != null)
     {
         back.Dispose();
         back = null;
     }
 }
Example #6
0
        public PShadowEffect(LImage img, LImage back, int x, int y)
            : this(img, back, x, y, img.GetWidth(), img.GetHeight())
        {

        }
Example #7
0
 public LPixmapData(LImage pix)
     : this(pix.GetPixels(), pix.GetWidth(), pix.GetHeight())
 {
 }
Example #8
0
        public static LTexture.Mask CreateMask(LImage image)
        {
			if (image == null) {
				throw new RuntimeException("Image is null !");
			}
			return CreateMask(image.GetIntPixels(), image.GetWidth(),
					image.GetHeight());
		}
Example #9
0
        public LPixmapData(LImage pix)
            : this(pix.GetPixels(), pix.GetWidth(), pix.GetHeight())
        {

        }