Выбрать главу

   return;

  }

  //Дать указание каждому из этих объектов освободить

  //любые удерживаемые ими неуправляемые ресурсы

  s_Player_Bitmap1.Dispose();

  s_Player_Bitmap2.Dispose();

  s_Player_Bitmap3.Dispose();

  s_Player_Bitmap4.Dispose();

  //Обнулить каждую из этих переменных, чтобы им не соответствовали

  //никакие объекты в памяти

  s_Player_Bitmap1 = null;

  s_Player_Bitmap2 = null;

  s_Player_Bitmap3 = null;

  s_Player_Bitmap4 = null;

  //Избавиться от массива

  s_colPlayerBitmaps = null;

 }

 //Функция: возвращает коллекцию изображений

 public static System.Collections.ArrayList g_PlayerBitmapsCollection() {

  //---------------------------------------------------------------

  //Если изображения уже загружены, их достаточно только возвратить

  //---------------------------------------------------------------

  if (s_colPlayerBitmaps != null) {

   return s_colPlayerBitmaps;

  }

  //Загрузить изображения как ресурсы из исполняемого двоичного файла

  System.Reflection.Assembly thisAssembly = System.Reflection.Assembly.GetExecutingAssembly();

  System.Reflection.AssemblyName thisAssemblyName = thisAssembly.GetName();

  string assemblyName = thisAssemblyName.Name;

  //Загрузить изображения

  s_Player_Bitmap1 = new System.Drawing.Bitmap(

   thisAssembly.GetManifestResourceStream(assemblyName + ".Hank_RightRun1.bmp"));

  s_Player_Bitmap2 = new System.Drawing.Bitmap(

   thisAssembly.GetManifestResourceStream(assemblyName + ".Hank RightRun2.bmp"));

  s_Player_Bitmap3 = new System.Drawing.Bitmap(

   thisAssembly.GetManifestResourceStream(assemblyName + ".Hank_LeftRun1.bmp"));

  s_Player_Bitmap4 = new System.Drawing.Bitmap(

   thisAssembly.GetManifestResourceStream(assemblyName + ".Hank_LeftRun2.bmp"));

  //Добавить изображения в коллекцию

  s_colPlayerBitmaps = new System.Collections.ArrayList();

  s_colPlayerBitmaps.Add(s_Player_Bitmap1);

  s_colPlayerBitmaps.Add(s_Player_Bitmap2);

  s_colPlayerBitmaps.Add(s_Player_Bitmap3);

  s_colPlayerBitmaps.Add(s_Player_Bitmap4);

 //Возвратить коллекцию

 return s_colPlayerBitmaps;

 }

 private static System.Drawing.Pen s_blackPen;

 private static System.Drawing.Pen s_whitePen;

 private static System.Drawing.Imaging.ImageAttributes s_ImageAttribute;

 private static System.Drawing.Font s_boldFont;

 //------------------------------------------------

 //Вызывается для освобождения от любых графических

 //ресурсов, которые могли быть кэшированы

 //------------------------------------------------

 private static void g_CleanUpDrawingResources() {

  //Освободить память от черного пера, если таковое имеется

  if (s_blackPen !=null) {

   s_blackPen.Dispose();

   s_blackPen = null;

  }

  // Освободить память от белого пера, если таковое имеется

  if (s_whitePen != null) {

   s_whitePen.Dispose();

   r_whitePen = null;

  }

  //Освободить память от атрибута ImageAttribute, если таковой имеется.

  //Примечание. Метод Dispose() для этого типа не предусмотрен,

  //поскольку все его данные являются управляемыми

  if (s_ImageAttribute != null) {

   s_ImageAttribute = null;

  }

  //Освободить память от полужирного шрифта, если таковой имеется

  if (s_boldFont != null) {

   s_boldFont.Dispose();

   s_boldFont = null;

  }

 }

 //-----------------------------------------

 //Эта функция позволяет получить доступ

 //к черному перу, находящемуся в кэш-памяти

 //-----------------------------------------

 private static System.Drawing.Pen g_GetBlackPen() {

  //Если перо еще не существует, создать его

  if (s_blackPen ==null) {

   s_blackPen = new System.Drawing.Pen(System.Drawing.Color.Black);

  }

  //Возвратить черное перо return s_blackPen;

 }

 //----------------------------------------

 //Эта функция позволяет получить доступ

 //к белому перу, находящемуся в кэш-памяти

 //----------------------------------------

 private static System.Drawing.Pen g_GetWhitePen() {

  //Если перо еще не существует, создать его

  if (s_whitePen == null) {

   s_whitePen = new System.Drawing.Pen(System.Drawing.Color.White);

  }

 //Возвратить белое перо return s_whitePen;

 }

 //-----------------------------------------------

 //Эта функция позволяет получить доступ

 //к полужирному шрифту, находящемуся в кэш-памяти

 //-----------------------------------------------

 private static System.Drawing.Font g_GetBoldFont() {

  //Если перо еще не существует, создать его

  if (s_boldFont ==null) {

   s_boldFont = new System.Drawing.Font(

    System.Drawing.FontFamily.GenericSerif, 10, System.Drawing.FontStyle.Bold);

  }

  //Возвратить полужирный шрифт

  return s_boldFont;

 }

 //------------------------------------------------------

 //Эта функция позволяет осуществлять доступ

 //к находящемуся в кэш-памяти объекту imageAttributes,

 // который мы используем для изображений с прозрачностью

 //------------------------------------------------------

 private static System.Drawing.Imaging.ImageAttributes g_GetTransparencyImageAttribute() {

  //Если объект не существует, создать его

  if (s_ImageAttribute == null) {

   //Создать атрибут изображения

   s_ImageAttribute = new System.Drawing.Imaging.ImageAttributes();