在圈子中绘制图片

时间:2014-04-25 12:20:19

标签: c# unity3d

我想绘制4个圈子的图片,我正在制作一个回合制的纸牌游戏。目前我正在绘制如下图片。

GUI.DrawTexture (new Rect(playerPos[ID].x, playerPos[ID].y, 100, 70), (Texture2D)Resources.Load ("gambler", typeof(Texture2D))); 

请帮忙。提前致谢

3 个答案:

答案 0 :(得分:0)

在Windows应用程序中绘制椭圆形,即将播放器图像设置为背景,并指定背景图像布局以拉伸

答案 1 :(得分:0)

你需要的是屏蔽你的图像,遗憾的是没有任何功能可以通过fw(至少不使用WPF),所以你应该手动完成。

您可以通过getpixel / setpixel或通过LockBits手动修改位图数据,我将在此向您展示如何使用get / setpixel进行操作以便于理解。

根据您的用户图像并使用带有Alpha通道的圆圈绘制位图并且具有与用户图像相同的尺寸,您可以将Alpha从面具传输到图像:

       //plyImage is a Bitmap with player's image, maskImage is a bitmap with the circle mask

       for (int y = 0; y < plyImage.Height; y++)
        {

            for (int x = 0; x < plyImage.Width; x++)
            {

                Color srcColor = plyImage.GetPixel(x, y);
                Color maskColor = maskImage.GetPixel(x, y);
                Color finalColor = Color.FromArgb(maskColor.A, srcColor.R, srcColor.G, srcColor.B);
                plyImage.SetPixel(x, y, finalColor);
            }

        }

答案 2 :(得分:0)

从您的代码中,您似乎正在尝试在Unity中实现此功能。正如古斯曼所说,你需要一个面具才能做到这一点。但是,在Unity中,您可以使用着色器实现此目的,而不是直接更改图像的像素。

Unity wiki中有一个例子:Texture Mask

您还可以从此主题下载示例:Draw Texture + TextureMask