XNA 課題でゴール キーパー ゲームを作成しています。ボールがゴール キーパーと衝突したことを検出し、ボールを元の位置にリセットするコードをどのように記述すればよいか考えていました。また、プログラムが開始されるとすぐにバックグラウンドで再生されるように曲を設定するにはどうすればよいですか?
ありがとうございました :)
XNA 課題でゴール キーパー ゲームを作成しています。ボールがゴール キーパーと衝突したことを検出し、ボールを元の位置にリセットするコードをどのように記述すればよいか考えていました。また、プログラムが開始されるとすぐにバックグラウンドで再生されるように曲を設定するにはどうすればよいですか?
ありがとうございました :)
どうぞ :
Texture2D は、2D オブジェクトのグラフィック コンテナーです。Rectangle を使用してテクスチャを含めることができます。
指定した長方形内にゴールキーパー オブジェクトを構築する場合、長方形に対して多くのメソッド、つまり、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
}
}
衝突のために、ボールとゴールキーパーの周りに長方形を作るだけです。次に、長方形の交差方法を使用して、それらが接触しているかどうかを確認します。
より正確な衝突が必要な場合は、画像内のピクセルをチェックして、そこから衝突が発生したかどうかを確認できます。
バックグラウンドミュージックについては、次を試してください。
ロードコンテンツ:
MediaPlayer.IsRepeating = true;
MediaPlayer.Play(Content.Load<Song>("Directory\\songtitle"));