C# - Monogame只绘制数组中的最后一个字母,而不是以前的字母

时间:2017-08-31 14:38:20

标签: c# arrays monogame

我有一系列对象 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,但它们不是,它们都是我认为的有效对象,但只是数组中的最后一个元素被绘制出来:/

编辑:

A pressed first time

A pressed second time

0 个答案:

没有答案