Ich versuche, ein XNA-Spiel (4.0, Visual Studio 2015, .NET 4.0 Framework) zu bekommen Ich schrieb auf einem Computer auf meinem Laptop arbeiten, aber die Leistung sinkt auf 2 in einigen Teilen und geht dann wieder auf 60 in andere (damit meine ich bestimmte bestimmte Spielzustände, die ich aufgezählt habe). Um es klar zu sagen, der Computer, auf dem ich ihn geschrieben habe, funktioniert perfekt und bleibt konstant bei 60 fps, aber der andere Computer bleibt furchtbar zurück.Warum ist mein XNA-Spiel auf einem anderen Computer langsam?
Die Speicher/CPU-Auslastung ist weniger als 25% von beiden, also glaube ich nicht, dass es mit dem Code zu tun hat, aber hier ist, was während der Update-Methode aufgerufen wird, die nur einen leeren Bildschirm läuft:
private void switchGameMode()
{
switch (state)
{
case GameState.preTitleScreen:
if (playing != paganBackground)
{
MediaPlayer.Stop();
playing = paganBackground;
}
MediaPlayer.Stop();
surprisePreTitleScreen();
break;
Der Rest ist das Ende einer Switch-Anweisung. Die Methode ist:
private void surprisePreTitleScreen()
{
if ((oldpad1.Buttons.Start == ButtonState.Released && pad1.Buttons.Start == ButtonState.Pressed) || (oldkeys.IsKeyUp(Keys.Enter) && keys.IsKeyDown(Keys.Enter)))
{
jeopardyTitle.Play();
state = GameState.titleScreen;
}
}
Und hier ist das, was in der Streck-Verfahren gezogen wird:
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Wheat);
spriteBatch.Begin();
switch(state)
{
case GameState.preTitleScreen:
break;
Nach Abschluss des Verfahrens und der Switch-Anweisung natürlich.
Hat jemand einen Vorschlag, was falsch ist?