如何加载限制精灵的精灵表,不包括背景?

时间:2013-03-27 01:30:54

标签: c# xna

我在谷歌搜索时遇到了很多麻烦,因为我真的不知道它的术语。然而,这是一个常见的问题。我想迭代一个精灵表,但是我希望它能够忽略精灵周围的透明背景,而不是将它作为所显示内容的一部分。

例如,如果我有几帧,我想迭代每一帧并加载该图像。然后,在那个框架中,我想通过在图像周围绘制一个矩形来缩小它,而不是额外的“背景”。这可能是通过找到精灵的角落来实现的,这些角落是不透明的像素(不确定这个部分是如何工作的)。

这有意义吗?再次,不确定在这里使用哪些词......如果不清楚,请告诉我。

这里的目标是加载与其他帧完全正方形的精灵,这样它们就不会无意中摆动或反弹。

非常感谢!!

1 个答案:

答案 0 :(得分:1)

我正在制作我的第一个游戏,我的精灵周围的透明区域也有类似的问题,在这种情况下是碰撞。

我所做的是设置它,以便每个精灵都有一个位置,一个高度,一个宽度和X和Y的填充。

Vector2 position = new Vector2(100,100);
int frameHeight = 48;
int frameWidth = 48;
int paddingX = 4;
int paddingY = 3;

使用该信息,您可以获得所需的信息,例如,代表我可以使用的精灵周围的边界框的矩形:

boundingRectangle = new Rectangle(
  (int)position.X + paddingX, 
  (int)position.Y + paddingY, 
  frameWidth - (paddingX * 2), 
  frameHeight - (paddingY * 2));

我在Kurt Jaegers的XNA 4.0游戏开发实例中看到了这一点(这对我来说有很多帮助)