所以我创建了一个名为SnakeItem的类,我希望在蛇生长时创建蛇项的新实例,它们遵循snake_Piece_ [NUMBER]的命名约定。已经有snake_Piece_0了,我想在代码中声明一个新实例。我不知道该怎么说......
SnakeItem snake_Piece_0;
public game_Window()
{
InitializeComponent();
snake_Piece_0 = new SnakeItem(Resource1.Black, 0, 0);
}
然后在这个函数中,我想创建它。 (在snake_length ++之后:)我需要命名为增量,所以它遵循snake_length变量。即如果snake_length = 1,那么它将创建一个名为snake_Piece_1的片段。
private void fruit_Collision()
{
if (snake_Piece_0.Top == Fruit_Item.Top && snake_Piece_0.Left == Fruit_Item.Left)
{
snake_Length++;
}
}
我不确定如果不可能我会说什么我必须事先申报所有400件蛇片,这是我试图避免的。
答案 0 :(得分:0)
这是初学者常见的事情 - 尝试使用新名称动态创建新变量。我也尝试过这样做,直到我了解了List
s。
List
是可以存储可变数量对象的对象。以下是如何创建SnakeItem
的空列表:
List<SnakeItem> snakeItems = new List<SnakeItem>();
您可以添加,访问和删除列表中的项目。以下是一些例子:
snakeItems.Add(new SnakeItem(Resource1.Black, 0, 0)); // add a new item to the list
snakeItems[0] // access the first item in the list. 0 is the first, 1 is the second, etc.
snakeItems.RemoveAt(0) // remove the first item of the list
基本上,只要您想创建一个新的变量名称&#34;,只需Add
列表中的新项目:
if (snakeItems[0].Top == Fruit_Item.Top && snakeItems[0].Left == Fruit_Item.Left)
{
snakeItems.Add(...);
}
如您所见,不再需要snake_Length
了!您可以使用.Count
访问有多少蛇项目。将所有snake_Length
替换为snakeItems.Count
。
详细了解列表here。