-1

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

谢谢 :)

4

2 回答 2

1

开始了 :

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

当您在指定的矩形内构造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
}

}
于 2013-01-04T19:09:06.543 回答
0

对于碰撞,您只需围绕您的球和守门员制作一个矩形。然后使用 rectangles intersect 方法查看它们是否接触。

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

对于背景音乐,请尝试:

加载内容:

MediaPlayer.IsRepeating = true; 
MediaPlayer.Play(Content.Load<Song>("Directory\\songtitle")); 
于 2013-01-04T19:08:18.537 回答