我想绘制4个圈子的图片,我正在制作一个回合制的纸牌游戏。目前我正在绘制如下图片。
GUI.DrawTexture (new Rect(playerPos[ID].x, playerPos[ID].y, 100, 70), (Texture2D)Resources.Load ("gambler", typeof(Texture2D)));
请帮忙。提前致谢
答案 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