我正在为我的 XNA 任务制作守门员游戏,我想知道如何编写代码:检测到球与守门员发生碰撞,然后将球重置到其原始位置。另外,我将如何设置一首歌曲,以便在程序启动后立即在后台播放?
谢谢 :)
我正在为我的 XNA 任务制作守门员游戏,我想知道如何编写代码:检测到球与守门员发生碰撞,然后将球重置到其原始位置。另外,我将如何设置一首歌曲,以便在程序启动后立即在后台播放?
谢谢 :)
开始了 :
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
}
}
对于碰撞,您只需围绕您的球和守门员制作一个矩形。然后使用 rectangles intersect 方法查看它们是否接触。
如果您想要更精确的碰撞,您可以检查图像中的像素并从中查看是否发生了碰撞。
对于背景音乐,请尝试:
加载内容:
MediaPlayer.IsRepeating = true;
MediaPlayer.Play(Content.Load<Song>("Directory\\songtitle"));