二维碰撞和背景音乐XNA 3.1

时间:2013-01-04 17:32:04

标签: audio background xna collision

我正在为我的XNA任务制作一个守门员游戏,我想知道如何编写一个代码:检测到球与守门员相撞,然后球将被重置为原始位置。 另外,我如何设置一首歌曲,以便在程序启动后立即在后台播放?

谢谢:)

2 个答案:

答案 0 :(得分:1)

我们走了:

Texture2D是2D对象的图形容器。 Rectangle可用于包含纹理。

在指定矩形内构造goalKeeper对象时,可以使用很多矩形方法,即rectangle.intersects(theObjectYouWantToCheckIntersectFor)。

所以你要这样做:

class Ball
{
Texture2D myTexture;
Rectangle myRect;
Vector2 velocity;

public Ball(Texture2D newTexture, Rectangle newRect, Vector2 newVelocity)//Constructor 
{
myTexture = newTexture;
myRect = nwRect;
speed = newVelocity;
}

public void Intersect Check(goalKeeper checkForIntersect)//pass in the goalKeeper object
{
if(rectangle.Intersects(checkForIntersect.rectangle)
{
Ball.Vector2 = Vector.Zero; //Or whatever place you want it to default to
}

}

答案 1 :(得分:0)

对于碰撞,你只需在球和守门员周围做一个矩形。然后使用矩形交叉方法来查看它们是否正在接触。

如果您想要更精确的碰撞,可以检查图像中的像素,然后查看是否发生了碰撞。

对于背景音乐尝试:

LoadContent:

MediaPlayer.IsRepeating = true; 
MediaPlayer.Play(Content.Load<Song>("Directory\\songtitle"));