私は Peggle Deluxe のようなゲームを使用C#
しXNA
て学習用に作成しています。
2 つの長方形、ボール、正方形のフィールドがあります。ボールは大砲から発射され、ボールが四角に当たると、四角が消えてボールが飛び去りますが、ボールは現実的に飛び散りません。時々、別の方向に飛んだり、端に引っかかったりします。
これは現時点での私のコードです:
public void Update(Ball b, Deadline dl)
{
ArrayList listToDelete = new ArrayList();
foreach (Field aField in allFields)
{
if (aField.square.Intersects(b.ballhere))
{
listToDelete.Add(aField);
Punkte = Punkte + 100;
float distanceX = Math.Abs(b.ballhere.X - aField.square.X);
float distanceY = Math.Abs(b.ballhere.Y - aField.square.Y);
if (distanceX < distanceY)
{
b.myMovement.X = -b.myMovement.X;
}
else
{
b.myMovement.Y = -b.myMovement.Y;
}
}
}
ボールが正方形に当たる方法に応じて X 軸または Y 軸を変更しますが、常にではありません。
この問題の原因は何ですか?