現在、モノゲームを使用して簡単なゲームを作成しようとしています。
私が現在直面している問題は、私のコードが問題なく実行されることがあることです。しかし、この例外がスローされる時があります:
MonoGame.Framework.dll で 'System.ArgumentNullException' 型の未処理の例外が発生しました
追加情報: 値を null にすることはできません。
ここでの私の質問は、この種の問題は常に発生するわけではないので、どのように対処するのですか?
ソリューションをクリーニングしてみました。しかし、ソリューションをクリーンアップした直後にまだ発生することがあります。
スタック トレースは Draw(); にあります。spriteBatch.Draw(); 行のメソッド
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Begin();
spriteBatch.Draw(InitialTexture, InitialPlatformPosition, InitialPlatformSprite, Color.White);
for (int x = 0; x <= 4; x++)
{
spriteBatch.Draw(TextureArray1[x], PlatformPosition1 + new Vector2(platformWidth * x, 0), PlatformSprite, Color.White);
spriteBatch.Draw(TextureArray2[x], PlatformPosition2 + new Vector2(platformWidth * x, 0), PlatformSprite, Color.White);
}
spriteBatch.End();
}
最初の行にヒットすることもあれば、2 番目の行にヒットすることもあります。
type1またはtype2をランダムに選択できる無限の実行プラットフォームを作成しようとしています。Update(); のコードは次のとおりです。私の Draw(); の上にあるメソッド 必要な場合の方法。
public void Update(GameTime gameTime)
{
int speed = -(int)(gameTime.ElapsedGameTime.TotalSeconds * velocity);
InitialPlatformPosition += new Vector2(speed, 0);
PlatformPosition1 += new Vector2(speed, 0);
PlatformPosition2 += new Vector2(speed, 0);
// Create First Array of Random Texture
if (InitialPlatformPosition.X < -datum1)
{
datum1X++;
datum1 = datum1X * 1920;
for (int x = 0; x <= 4; x++)
{
random.Next(2);
if (random.Next(2) == 0)
PlatformChoice1 = Texture;
else if (random.Next(2) == 1)
PlatformChoice1 = TextureFlipped;
// insert random platform into an array of 10 Texture
TextureArray1[x] = PlatformChoice1;
}
if (datum1X != 1)
{
PlatformPosition1 += new Vector2(1920, 0);
}
}
// Create Second Array of Random Texture
if (InitialPlatformPosition.X < datum2)
{
datum2X++;
datum2 = -(1920 - datum2);
if (datum2X == 1 || datum2X >= 3)
{
for (int x = 0; x <= 4; x++)
{
random.Next(2);
if (random.Next(2) == 0)
PlatformChoice2 = Texture;
else if (random.Next(2) == 1)
PlatformChoice2 = TextureFlipped;
// insert random platform into an array of 10 Texture
TextureArray2[x] = PlatformChoice2;
}
}
if (datum2X >= 3)
{
PlatformPosition2 += new Vector2(1920, 0);
}
}
}
私はプログラミングの世界、特に C# とモノゲームにかなり慣れていないので、簡単な言葉で説明してください。