所以即时尝试将类调用为方法。但它生气,因为这个方法不会要求列表,我所做的类是一个列表。我尝试制作一个不是列表的单独变量,但是当我运行程序时它似乎没有用。
它的“egg.BounceRock(rocks);”在世界级的run方法下;
世界级
public class World
{
private List<Rock> rocks;
private Egg egg;
private Board board;
private Graphics graphics;
public World()
{
egg = new Egg();
board = new Board();
rocks = new List<Rock>();
rocks.Add(new Rock(graphics, new Point(RockstartX, RockstartY), Color.Black));
rocks.Add(new Rock(graphics, new Point(Rock2startX, Rock2startY), Color.Black));
}
public void Run()
{
foreach(Rock rock in rocks)
{
rock.Draw();
}
egg.Draw();
egg.BounceRock(rocks);
egg.BounceBoard(board);
egg.BounceFloor();
}
}
蛋类
public class Egg
{
public Egg()
{
}
public void Draw()
{
}
public void BounceFloor()
{
}
public void BounceBoard(Board board)
{
}
public void BounceRock(Rock rock)
{
}
}
答案 0 :(得分:1)
public class Egg
{
public void BounceRock(Rock rock)
{
// Bounce the rock...
}
public void BounceRocks(List<Rock> rocks)
{
foreach(Rock rock in rocks)
{
BounceRock(rock);
}
}
}
所以你的鸡蛋知道如何弹跳一块岩石,但它不知道如何反弹一堆岩石......然而!通过添加一个以岩石列表作为参数的新方法,您可以遍历列表中的每个岩石,并使用原始的反弹方法来反弹每个岩石。