Originariamente inviato da U235
Ciao,
quello che non mi è chiaro è come stai gestendo la cosa... va bene utilizzare un loop per gestire il paint della scena (almeno ricordo così) perchè il metodo OnPaint non è abbastanza performante (perlomeno anni fa...), ma quello che non capisco è perchè usi "Console.WriteLine"??? qual'è il tuo metodo di render? dove stai disegnando?
visto così non capisco

, prova a postare il codice completo.
Console.Writeline mi serviva a sapere solo ogni quanto il tempo scadesse per cambiare frame.
Comunque, io cambio solo la sequenza dell'immagine selezionata, per visualizzare lo sprite uso questa funzione:
codice:
private void _drawSprites()
{
// Draw animated sprites
if (GSObjects[selectedSCENE].SpriteAnimatedList.Count > 0)
{
for (int i = 0; i < GSObjects[selectedSCENE].SpriteAnimatedList.Count; i++)
{
GSObjects[selectedSCENE].SpriteAnimatedList[i].CurrentFrame.Begin(SpriteFlags.SortTexture | GSObjects[selectedSCENE].SpriteAnimatedList[i].flag);
GSObjects[selectedSCENE].SpriteAnimatedList[i].CurrentFrame.Draw2D(GSObjects[selectedSCENE].SpriteAnimatedList[i].textureSequence[GSObjects[selectedSCENE].SpriteAnimatedList[i].FrameID], new Point(0, 0), 0, new Point(500,500), Color.White.ToArgb());
GSObjects[selectedSCENE].SpriteAnimatedList[i].CurrentFrame.End();
if (i > SpriteList.Count) break;
}
}
}
GSObject non è altro che una classe che contiene questo:
codice:
public string SceneNAME = null;
public int SceneID = 0;
public List<Sprite> SpriteList = new List<Sprite>();
public List<string> SpriteName = new List<String>();
public List<Vector3> SpriteLocation = new List<Vector3>();
public List<Texture> TextureList = new List<Texture>();
public List<SpriteFlags> SpriteFlagList = new List<SpriteFlags>();
public List<SpriteAnimation> SpriteAnimatedList = new List<SpriteAnimation>();
public SurfaceDescription sdCURSOR;