0
CollisionTest();并不像预期的。只有一个箱子的工作有冲突... 此代码可能会伤害你的眼睛,它可能是一个糟糕的方式做我想做我的碰撞列表不能按预期工作
Game1.cs
Texture2D boxTexture;
GameObject box, box1, box2;
List <GameObject> boxlist;
Random rand = new Random();
LoadContent()
boxTexture = Content.Load<Texture2D>("box");
for(int i = 0; i < boxlist.Count; i++)
boxlist[i] = new GameObject(boxTexture, new Vector2(rand.Next(100, 1200), rand.Next(500, 600)));
Update()
CollisionTest();
public void CollisionTest()
{
for (int i = 0; i < boxlist.Count; i++)
{
if (player.collisionRect.Intersects(boxlist[i].collisionRect))
{
ground.Y = boxlist[i].collisionRect.Y;
player.setPositionY(0);
}
else
{
ground.Y = 640;
}
}
}
Draw()
for (int i = 0; i < boxlist.Count; i++)
boxlist[i].Draw(spriteBatch);
GameObject.cs
public Rectangle collisionRect
{
get
{
return new Rectangle((int)position.X, (int)position.Y, texture.Width, texture.Height);
}
}