I am making a game in wpf. I am using Image Controls to display the sprites. Below is an example of the animation scripts I am using. It works fine but, if I get more then 35-40 images moving on screen, I have frame rate drop. Looking for any suggestions on more efficient animation.
while (GTC_isGamePlaying) { Thread.Sleep(GTC_PlayerPrimaryWeapon.GetSpeed()); if (!GTC_isGamePaused) { //CheckForCollision(); xCord += GTC_PlayerPrimaryWeapon.GetDistance(); yCord += slope * GTC_PlayerPrimaryWeapon.GetDistance(); SetImagePosition(item.Key, xCord, yCord); if (xCord > 1280) { SetImagePosition(item.Key, 2000, 2000); break; } } } SetWeaponControlToUsed(item.Key, false); break; public void SetImagePosition(ImageControls imageControl, double xCord, double yCord) { Dispatcher.BeginInvoke(new Action(() => { ImageControlDirectory[imageControl].Margin = new Thickness(xCord, yCord, 0, 0); })); }
ImageControls is an enum I am using as the key in a Dictionary. The dictionary contains the BitmapImage.