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