Литмир - Электронная Библиотека
Содержание  
A
A

 g_greenBrush = New SolidBrush(System.Drawing.Color.LightGreen)

 g_yellowBrush = New SolidBrush(System.Drawing.Color.Yellow)

 g_redBrush = New SolidBrush(System.Drawing.Color.Red)

 s_alreadyInitialized = True

End Sub

'====================================================

'Подход 3: Возвратить массив связанных ресурсов.

' Кэшировать ресурсы локально, чтобы при многократных

' запросах не загружались (напрасно) их дубликаты

'====================================================

Private Shared m_CaveMan_Bitmap1 As Bitmap

Private Shared m_CaveMan_Bitmap2 As Bitmap

Private Shared m_CaveMan_Bitmap3 As Bitmap

Private Shared m_CaveMan_Bitmap4 As Bitmap

Private Shared m_colCaveManBitmaps As _

 System.Collections.ArrayList

'--------------------------------------------------

'Создать и загрузить массив изображений для спрайта

'--------------------------------------------------

Public Shared Function g_CaveManPictureCollection() As _

 System.Collections.ArrayList

 'Изображения загружаются лишь в том случае, если мы их еще не загрузили

 If (m_CaveManBitmap1 Is Nothing) Then

  '-----------------------------------------------------------------

  'Загрузить изображения. Эти изображения хранятся в виде

  'встроенных ресурсов в нашем двоичном приложении

  '

  'Загрузка изображений из внешних файлов осуществляется аналогичным

  'образом, но выполнить ее проще (нам достаточно лишь указать

  'имя файла в конструкторе растровых изображений).

  '-----------------------------------------------------------------

  'Получить ссылку на нашу двоичную сборку

  dim thisAssembly as System.Reflection.Assembly = _

   System.Reflection.Assembly.GetExecutingAssembly()

  'Получить имя сборки

  Dim thisAssemblyName As System.Reflection.AssemblyName = _

   thisAssembly.GetName()

  Dim assemblyName As String = thisAssemblyName.Name

  'Загрузить изображения в виде двоичных потоков из нашей сборки

  m_CaveMan_Bitmap1 = New System.Drawing.Bitmap( _

   thisAssembly.GetManifestResourceStream( _

   assemblyName + ".Hank_RightRun1.bmp"))

  m_CaveMan_Bitmap2 = New System.Drawing.Bitmap( _

   thisAssembly.GetManifestResourceStream( _

   assemblyName + ".Hank_RightRun2.bmp"))

  m_CaveMan_Bitmap3 = New System.Drawing.Bitmap( _

   thisAssembly.GetManifestResourceStream( _

   assemblyName + ".Hank_LeftRunl.bmp"))

  m_CaveMan_Bitmap4 = New System.Drawing.Bitmap( _

   thisAssembly.GetManifestResourceStream( _

   assemblyName + ".Hank_LeftRun2.bmp"))

  'Добавить их в коллекцию

  m_colCaveManBitmaps = New System.Collections.ArrayList

  m_colCaveManBitmaps.Add(m_CaveMan_Bitmap1)

  m_colCaveManBitmaps.Add(m_CaveMan_Bitmap2)

  m_colCaveManBitmaps.Add(m_CaveMan_Bitmap3)

  m_colCaveManBitmaps.Add(m_CaveMan_Bitmap4)

 End If

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

 Return m_colCaveManBitmaps

End Function

End Class

Примеры к главе 13 (проектирование пользовательского интерфейса)

Листинг 13.1. Использование конечного автомата для экспериментов с двумя различными вариантами компоновки пользовательского интерфейса

#Const PLAYFIELD_ON_BOTTOM = 0 'Отобразить ПОЛЕ ИГРЫ под ПИ

'#Const PLAYFIELD_ON_BOTTOM = 1 'Отобразить ПОЛЕ ИГРЫ над ПИ

'-------------------------------------------------

'ОБРАБОТЧИК СОБЫТИЙ: Вызывается при загрузке формы

'-------------------------------------------------

Private Sub Form1_Load(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles MyBase.Load

 'Задать совместно используемые свойства нашего визуального интерфейса

 SetStartControlPositionAndState()

 'Задать динамические свойства, исходя из того, в какое состояние

 'игры мы входим

 StateChangeForGameUI(GameUIState.startScreen)

End Sub

'---------------------------------------------------------------------------

'Конечный автомат, который управляет отображением кнопок, скрываемых вручную

'---------------------------------------------------------------------------

Private Enum GameUIState

251
{"b":"947732","o":1}