怎样找出精灵的边缘

2009年11月5日 由 admin 留言 »

在很多游戏中,将鼠标移到人物上,人物的边缘上就会出现一道光边。这也就是笔者将要和大家讨论的,如何找出这一边缘。

其实要找出它也不难,在游戏所使用的图片中,都包含有透明色和不透明色两部分,那么问题就很简单了,在透明色和不透明色相接的地方就是边缘。请看下面的程序:

程序功能:画指定区域图像的边缘在指定位置
x,y   :画边缘的坐标地址
x1,y1 :指定区域左上角的坐标
x2,y2 :指定区域右下角的坐标
TColor:透明色
var16 i,j;
uvar16 Color,TColor;
for(i=y1;i<=y2;i++)
for(j=x1;j<=x2;j++)
{
Color=GetPixel(j,i);
if(Color!=TColor) //如果这个点不是透明色
{
if(j==x1||GetPixel(j-1,i)==TColor)PutPixel(j-x1+x-1,i-y1+y  );
if(j==x2||GetPixel(j+1,i)==TColor)PutPixel(j-x1+x+1,i-y1+y  );
if(i==y1||GetPixel(j,i-1)==TColor)PutPixel(j-x1+x  ,i-y1+y-1);
if(i==y2||GetPixel(j,i+1)==TColor)PutPixel(j-x1+x  ,i-y1+y+1);
}
}
广告位

发表回复

你必须 登陆 方可发表评论.
鄂ICP备09027626号