Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'Подход 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
startScreen = 1
waitForNextQuestion = 2
waitForUserToStateKnowledge = 4
waitForUserToAnswerMultipleChoice = 8
Поделиться:
Популярные книги
Черный маг императора 2
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Отмороженный 12.0
12. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
фантастика: прочее
5.00
рейтинг книги
Товарищ "Чума" 3
3. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Эволюция мага
2. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Юнлинг
Фантастика:
героическая фантастика
космическая фантастика
попаданцы
8.35
рейтинг книги
Черный Маг Императора 4
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Вечный. Книга VI
6. Вечный
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Хозяин Теней 7
7. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Точка Бифуркации III
3. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Моров. Том 3
2. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Офицер
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Наследие Маозари 6
6. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Группа крови на рукаве. Том 2
2. ГК
Фантастика:
боевая фантастика
альтернативная история
постапокалипсис
5.00
рейтинг книги
Крестоносец
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00