Чтение онлайн

на главную - закладки

Жанры

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 6: Программирование на Visual Basic искусственного интеллекта. Продолжение 2
Шрифт:

Листинг 22.2. Метод для загрузки изображений.

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

ByVal e As System.EventArgs) Handles MyBase.Load

Me.Visible = False

'–

'Load and cache the global object we need

'–

g_InitializeGlobals

Me.Visible = True

'–

'Place the textbox off the screen

'–

TextBox1.Width = 4

TextBox1.Multiline = True

TextBox1.Left = -20

'Start the game

StartGame

End Sub

В

панели Properties (для Form1) на вкладке Events дважды щёлкаем по имени события FormClosing. Появившийся шаблон после записи нашего кода принимает следующий вид.

Листинг 22.3. Метод для закрытия формы.

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

ByVal e As System.Windows.Forms.FormClosingEventArgs) _

Handles MyBase.FormClosing

' '–

' 'Cleanup

' '–

'–

'Free up the form based objects

'–

m_playfieldManager = Nothing

If Not (m_myFormsGraphics Is Nothing) Then

m_myFormsGraphics.Dispose

m_myFormsGraphics = Nothing

End If

'–

'Free up all the global objects

'–

g_DisposeAndFreeGlobals

End Sub

На форме дважды щёлкаем по кнопке Button с номером 1 и текстом “Новая игра” (или в панели Properties, для этого элемента, на вкладке Events дважды щёлкаем по имени соответствующего события). Появившийся шаблон после записи нашего кода принимает следующий вид.

Листинг 22.4. Метод-обработчик щелчка кнопки.

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

ByVal e As System.EventArgs) Handles Button2.Click

StartGame

End Sub

На форме дважды щёлкаем по кнопке Button с текстом Уровень (или в панели Properties, для этого элемента, на вкладке Events дважды щёлкаем по имени соответствующего события). Появившийся шаблон метода после записи нашего кода принимает следующий вид.

Листинг 22.5. Метод-обработчик щелчка кнопки.

Private Sub ButtonNextLevel_Click( _

ByVal sender As System.Object, ByVal e As System.EventArgs) _

Handles ButtonNextLevel.Click

'–

'Starts a new level of play

'–

'Ask the current level what it's next level is

m_playfieldManager = m_playfieldManager.GetNextLevel

'Start the level running

InitializeNewLevel

End Sub

На форме дважды щёлкаем по кнопке Button с текстом Помощь (или в панели Properties, для этого элемента, на вкладке Events дважды щёлкаем по имени соответствующего события). Появившийся шаблон метода после записи нашего кода принимает следующий вид.

Листинг 22.6.

Метод-обработчик щелчка кнопки.

Private Sub buttonInstructions_Click( _

ByVal sender As System.Object, ByVal e As System.EventArgs) _

Handles buttonInstructions.Click

MsgBox("Правила игры: Соберите все факелы и " + _

"принесите их Еве. Очки засчитываются " + _

"за каждый факел данного уровня, " + _

"за оставшееся время бонуса и за энергию игрока, " _

+ "оставшуюся в конце каждого уровня.")

MsgBox("Адам потеряет энергию, если он будет поражён " + _

"валуном или птицей. Адам будет подскакивать, " + _

"чтобы не быть поражённым этими объектами. " + _

"Адам также потеряет энергию, " + _

"если он упадёт с большой высоты.")

MsgBox("Управление Адамом состоит в том, " + _

"чтобы щёлкать по экрану. После каждого щелчка " + _

"появляется пунктирная линия, показывающая, " + _

"куда пойдёт Адам. Чтобы Адам подпрыгнул " + _

"от валуна или птицы, " + _

"следует нажать клавишу пробела.")

'Bring the focus back to the textbox

'so it gets the keyboard input

TextBox1.Focus

End Sub

В панели Properties, для элемента TextBox, на вкладке Events дважды щёлкаем по имени события KeyDown. Появившийся шаблон после записи нашего кода принимает следующий вид.

Листинг 22.7. Метод-обработчик события.

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

ByVal e As System.Windows.Forms.KeyEventArgs) _

Handles TextBox1.KeyDown

'–

'This textbox is a way to get the keyboard input

'for the game becuase:

' 1. When you hit the "START" button, it get's the focus

'(so the form no longer gets keydown events)

' 2. The Start Button does not get key-down events

'–

If (m_playfieldManager Is Nothing) Then

Return

End If

Dim i As Integer

i = e.KeyValue

Const PocketPC_BUTTON_PUSHED = 134

Const Keyboard_SPACE_PUSHED = 32

Const PocketPC_UP = 38

Const PocketPC_DOWN = 40

Const PocketPC_LEFT = 37

Const PocketPC_RIGHT = 39

Dim hank As HankTheWonderCaveman = _

m_playfieldManager.HankTheWonderCaveman

Const D_MOVEMENT = 14

Const D_MOVEMENT_UP = 70

If (i = PocketPC_BUTTON_PUSHED) Or _

(i = Keyboard_SPACE_PUSHED) Then

hank.MakeHankJump

e.Handled = True

ElseIf (i = PocketPC_RIGHT) Then

hank.NudgeHanksDirection(D_MOVEMENT, 0)

ElseIf (i = PocketPC_LEFT) Then

Поделиться:
Популярные книги

Идеальный мир для Лекаря 10

Сапфир Олег
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 10

Бестужев. Служба Государевой Безопасности. Книга четвертая

Измайлов Сергей
4. Граф Бестужев
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга четвертая

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Лисья нора

Сакавич Нора
1. Всё ради игры
Фантастика:
боевая фантастика
8.80
рейтинг книги
Лисья нора

Калибр Личности 5

Голд Джон
5. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 5

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Сердце Дракона. Том 10

Клеванский Кирилл Сергеевич
10. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.14
рейтинг книги
Сердце Дракона. Том 10

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Как я строил магическую империю

Зубов Константин
1. Как я строил магическую империю
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Как я строил магическую империю

Повелитель механического легиона. Том VII

Лисицин Евгений
7. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VII

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

На границе империй. Том 10. Часть 2

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 10. Часть 2

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Отморозок 3

Поповский Андрей Владимирович
3. Отморозок
Фантастика:
попаданцы
5.00
рейтинг книги
Отморозок 3