我有一系列对象 Letter ,如果有 键盘键A被按下它会将字母添加到数组中。
static Letter[] letters = new Letter[50]; // all letters to be shown
static int letterCounter = 0; // last array element
public static Vector2 Cursor = new Vector2(10, 10);
public static void Update()
{
keyState = Keyboard.GetState();
Checker();
oldKeyState = keyState;
}
static void Checker()
{
if(IsKeyPressed(Keys.A))
{
characters[letterCounter] = 'a';
letters[letterCounter] = new Letter('a');
Cursor.X += 20;
letterCounter++;
}
}
应该绘制数组中的所有字母,但不是,只绘制数组中的最后一个元素。
public static void Draw(SpriteBatch spriteBatch)
{
for(int i = 0; i < letterCounter; i++)
{
letters[i].Draw(spriteBatch);
}
spriteBatch.DrawString(font, ("Letter 0: " + (letters[0] == null)), new Vector2(10, 50), Color.Black);
spriteBatch.DrawString(font, ("Letter 1: " + (letters[1] == null)), new Vector2(10, 70), Color.Black);
}
正如你所看到的,我也测试了以前的元素是否因某种原因可能为null,但它们不是,它们都是我认为的有效对象,但只是数组中的最后一个元素被绘制出来:/
编辑: