MakeHankJump()
Else
'–
'Figure out where on the game playfield we clicked
'–
Dim x_GAME As Integer
Dim y_GAME As Integer
x_GAME = e.X – GAME_SCREEN_DX
y_GAME = e.Y – GAME_SCREEN_DY
'Let Hank figure out what to do
m_playfieldManager.HankTheWonderCaveman. _
setHanksDestination(x_GAME, y_GAME)
End If
End If
End Sub
Мы закончили написание программы в главный класс Form1 (для формы Form1 с пользовательским интерфейсом игры).
Теперь в наш проект добавляем новые файлы (для программирования соответствующих игровых действий). Добавить в проект файл можно по двум вариантам.
По первому варианту, добавляем в проект нужный файл по обычной схеме: в панели Solution Explorer выполняем правый щелчок по имени проекта, в контекстном меню выбираем Add, Existing Item (или Project, Add Existing Item), в панели Add Existing Item в окне “Files of type” выбираем “All Files”, в центральном окне находим (в папке компьютера с загруженными, например, из Интернета, файлами) и с нажатой клавишей Ctrl выделяем все файлы формата (.vb) и щёлкаем кнопку Add, чтобы после этого добавления в панели Solution Explorer были файлы, показанные на рис. 22.11.
По второму варианту, в панели Solution Explorer выполняем правый щелчок по имени проекта и в контекстном меню выбираем Add, New Item, в панели Add New Item выделяем шаблон Code File, в окне Name записываем имя BorisTheMenacingBird.vb и щёлкаем кнопку Add. В проект (и в панель Solution Explorer) добавляется этот файл, открывается пустое окно редактирования кода, в которое записываем код со следующего листинга.
Листинг 22.10. Новый файл.
'–
'This class represents one of the characters in the game,
' "BorisTheMenacingBird"
'
'It contains logic for the rendering and movement of the character
'–
Public Class BorisTheMenacingBird
Inherits DrawablePlayfieldMultiFrameBitmap
Private m_yVelocityBoris As Integer 'How fast are _
'we traveling vertically?
Private m_xVelocityBoris As Integer 'How fast are we
'traveling vertically?
Const MAX_DY_BORIS_FLYING = 4
Private m_y_accelerationBorris As Integer
Private m_world_I_Inhabit As PlayFieldManager
Private m_myModeOfMovement As ModeOfMovement
Public Enum ModeOfMovement As Integer
Flying = 1
End Enum
'When did we last update a flipped image
Private m_lastTickCountWhenImageFlipped As Integer
Const DTIME_TO_FLAP_WINGS = 400 'Every 600 ms we should
'flap our wings
'–
'These are the current image states for Hank
'–
Private Enum BorisImagesIndexes
flyLeft1 = 1
flyLeft2 = 2
End Enum
'–
'[in] X,Y : Position to start Hank at
'[in] worldHankInhabits : Playfield in which Hank lives
'–
Sub New(ByVal x As Integer, ByVal y As Integer, _
ByVal world_I_Inhabit As PlayFieldManager)
'–
'Get the bitmaps for our character
'–
Dim col As Collection
col = g_FlyingBirdPictureCollection()
m_world_I_Inhabit = world_I_Inhabit
ChangeMyMovementState(ModeOfMovement.Flying)
'Start him off as falling.
'Initialize our base class with these…
MyBase.Initialize_DrawableMultiPlayfiedBitmapObject( _
x, y, col, True)
'Set the image index
Me.CurrentFrameIndex = BorisImagesIndexes.flyLeft1
'Set Boris' speed
m_xVelocityBoris = -4
m_y_accelerationBorris = 1
'–
СКАЧАТЬ