Добавляем в эту папку звуковые файлы по стандартной схеме: выполняем правый щелчок по имени этой папки, в контекстном меню выбираем Add, Existing Item, в панели Add Existing Item в окне “Files of type” выбираем “All Files”, в центральном окне находим (например, в папке с загруженными из Интернета файлами) и с нажатой клавишей Ctrl выделяем файлы и щёлкаем кнопку Add. В панели Solution Explorer мы увидим эти файлы.
Рис. 22.10. Форма Form1 в режиме проектирования. Рис. 22.11. Панель Solution Explorer.
22.4. Код и запуск программы
Открываем файл Form1.vb (например, по схеме: File, Open, File) и в самом верху импортируем пространства имён для управления соответствующими классами:
Imports System.Reflection 'Для класса Assembly.
В классе Form1 нашего проекта записываем следующие переменные и методы.
Листинг 22.1. Переменные и методы.
'–
'Offsets on form where we should draw the playfield
'–
Const GAME_SCREEN_DX = 2
Const GAME_SCREEN_DY = 1
'Current playfield
Private m_playfieldManager As PlayFieldManager
'Gfx object of the form that we will render the playfield to
Dim m_myFormsGraphics As Graphics
'–
'Does the things we need to get get a round running
'–
Sub InitializeNewLevel()
'Add a game event handler to get updates on the game
AddHandler m_playfieldManager.GameStateChanged, _
AddressOf GameEventOccured
'Start the game
timerGame.Enabled = True
ButtonNextLevel.Visible = False
'–
'Give the text-box focus so we can get keyboard events
'–
TextBox1.Focus()
End Sub
'–
'Starts a new game
'–
Sub StartGame()
'Мелодия начала игры с ожиданием окончания мелодии:
'My.Computer.Audio.Play("..\..\Sounds\drumpad-crash.wav", _
' AudioPlayMode.WaitToComplete)
'Мелодия начала игры без ожидания её окончания:
My.Computer.Audio.Play("..\..\Sounds\drumpad-crash.wav")
'–
'Create Graphics object and cache it
'–
If (m_myFormsGraphics Is Nothing) Then
m_myFormsGraphics = Me.CreateGraphics
End If
'–
'Create the playfield level we want to start on
'–
m_playfieldManager = New Playfield_Level2()
'–
'Start the level running
'–
InitializeNewLevel()
End Sub
Sub PictureBoxPlayField_MouseDown( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs)
'If Hank's around, give him a new destination
'If Not (m_HankTheWonderCaveMan Is Nothing) Then
If Not (m_playfieldManager Is Nothing) Then
m_playfieldManager.HankTheWonderCaveman. _
setHanksDestination(e.X, e.Y)
End If
End Sub
'–
'This event-sink is to get called when a game event occurs
'–
Sub GameEventOccured(ByVal gameUpdateMessage As _
PlayFieldManager.GameUpdate)
'The level was completed succesfully
If (gameUpdateMessage = PlayFieldManager.GameUpdate. _
levelSuccesfullyCompleted) Then
ButtonNextLevel.Visible = True
End If
End Sub
'Загружаем в проект файлы изображений по такой схеме:
'Создаём объект myAssembly класса Assembly и присваиваем ему
'ссылку на исполняемую сборку нашего приложения:
Public myAssembly As Assembly = Assembly.GetExecutingAssembly()
'Создаём объект myAssemblyName
'класса System.Reflection.AssemblyName и присваиваем ему
'имя сборки, которое состоит из имени проекта,
'Version,