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

 startScreen = 1

 waitForNextQuestion = 2

 waitForUserToStateKnowledge = 4

 waitForUserToAnswerMultipleChoice = 8

End Enum

'Текущее состояние игры

Private m_GameUIState As GameUIState

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

'Конечный автомат, используемый для управления пользовательским интерфейсом

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

Private Sub StateChangeForGameUI(ByVal newGameUIState As _

 GameUIState)

 m_GameUIState = newGameUIState

 Select Case (newGameUIState)

 Case GameUIState.startScreen

  buttonAskQuestion.Visible = True

  buttonAskQuestion.Text = "Start"

  'Скрыть текстовое окно

  textBoxAskQuestion.Visible = False

  SetAnswerButtonVisibility(False)

  SetDifficultyButtonVisibility(False)

 Case GameUIState.waitForNextQuestion

  setQuestionText("List answer details here... " + vbCrLf + _

   "Lots of space to write..." + vbCrLf + _

   "Waiting for user to select next question...")

  textBoxAskQuestion.Visible = True

  buttonAskQuestion.Text = "Next"

  buttonAskQuestion.Visible = True

  'Убедиться в том, что кнопка отображается на переднем плане

  buttonAskQuestion.BringToFront()

  SetAnswerButtonVisibility(False)

  SetDifficultyButtonVisibility(False)

#If PLAYFIELD_ON_BOTTOM <> 0 Then 'ПОЛЕ ИГРЫ располагается под ПИ

  textBoxAskQuestion.Height = pictureBoxGameBoard.Top - 2

#Else 'ПОЛЕ ИГРЫ располагается над пользовательскими элементами управления

  textBoxAskQuestion.Top = pictureBoxGameBoard.Top + _

   pictureBoxGameBoard.Height + 2

  textBoxAskQuestion.Height = Me.Height - _

   textBoxAskQuestion.Top

#End If

 Case GameUIState.waitForUserToStateKnowledge

  SetTextForVocabularyQuestion()

  textBoxAskQuestion.Visible = True

  buttonAskQuestion.Visible = False

  SetAnswerButtonVisibility(False)

  SetDifficultyButtonVisibility(True)

#If PLAYFIELD_ON_BOTTOM <> 0 Then 'ПОЛЕ ИГРЫ располагается под ПИ

  textBoxAskQuestion.Height = _

   buttonShowAnswers_AdvancedVersion.Top - 2

#Else 'ПОЛЕ ИГРЫ располагается над пользовательскими элементами управления

  textBoxAskQuestion.Top = _

   buttonShowAnswers_AdvancedVersion.Top + _

   buttonShowAnswers_AdvancedVersion.Height + 2

  textBoxAskQuestion.Height = Me.Height - _

   textBoxAskQuestion.Top

#End If

 Case GameUIState.waitForUserToAnswerMultipleChoice

  buttonAskQuestion.Visible = False

  SetDifficultyButtonVisibility(False)

  'Сделать кнопки доступными, чтобы пользователь мог щелкать на них

  SetAnswerButtonEnabled(True)

  SetAnswerButtonVisibility(True)

#If PLAYFIELD_ON_BOTTOM <> 0 Then

  'ПОЛЕ ИГРЫ располагается под ПИ

  textBoxAskQuestion.Height = buttonAnswer0.Top - 2

#Else 'ПОЛЕ ИГРЫ располагается над пользовательскими элементами управления

  'Разместить текстовое окно таким образом, чтобы экран использовался

  'эффективно

  textBoxAskQuestion.Top = buttonAnswer5.Top + _

   buttonAnswer5.Height + 2

  textBoxAskQuestion.Height = Me.Height - _

   textBoxAskQuestion.Top

#End If

 End Select

End Sub

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

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

'Сюда входят все элементы, позиции которых остаются фиксированными.

'Изменения в остальные свойства внесет конечный автомат пользовательского

'интерфейса

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

Private Sub SetStartControlPositionAndState()

 pictureBoxGameBoard.Width = 240

 pictureBoxGameBoard.Height = 176

 'Установить размеры кнопок множественного выбора вариантов ответов

 Const answerButtons_dx As Integer = 117

 Const answerButtons_dy As Integer = 18

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