Категории
ТОП за месяц
onlinekniga.com » Компьютеры и Интернет » Программирование » Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Читать онлайн Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 119 120 121 122 123 124 125 126 127 ... 206
Перейти на страницу:

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

  textBoxAskQuestion.Visible = false;

  SetAnswerButtonVisibility(false);

  SetDifficultyButtonVisibility(false);

  break;

 case GameUIState.waitForNextQuestion:

  setQuestionText("List answer details here... rn" +

   "Lots of space to write...rn" +

   "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 //ПОЛЕ ИГРЫ располагается под пользовательскими

                        //элементами управления

  textBoxAskQuestion.Height = pictureBoxGameBoard.Top - 2;

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

      //элементами управления

  textBoxAskQuestion.Top = pictureBoxGameBoard.Top + pictureBoxGameBoard.Height + 2;

  textBoxAskQuestion.Height = this.Height - textBoxAskQuestion.Top;

#endif

  break;

 case GameUIState.waitForUserToStateKnowledge:

  SetTextForVocabularyQuestion();

  textBoxAskQuestion.Visible = true;

  buttonAskQuestion.Visible = false;

  SetAnswerButtonVisibility(false);

  SetDifficultyButtonVisibility(true);

#if PLAYFIELD_ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                        //элементами управления

  textBoxAskQuestion.Height = buttonShowAnswers_AdvancedVersion.Top - 2;

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

      //элементами управления

  textBoxAskQuestion.Top = buttonShowAnswers_AdvancedVersion.Top + buttonShowAnswers_AdvancedVersion.Height + 2;

  textBoxAskQuestion.Height = this.Height - textBoxAskQuestion.Top;

#endif

  break;

 case GameUIState.waitForUserToAnswerMultipleChoice:

  buttonAskQuestion.Visible = false;

  SetDifficultyButtonVisibility(false);

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

  SetAnswerButtonEnabled(true);

  SetAnswerButtonVisibility(true);

#if PLAYFIELD_ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                       //элементами управления

  textBoxAskQuestion.Height = buttonAnswer0.Top - 2;

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

      //элементами управления.

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

  //эффективно

  textBoxAskQuestion.Top = buttonAnswer5.Top + buttonAnswer5.Height + 2;

  textBoxAskQuestion.Height =this.Height - textBoxAskQuestion.Top;

#endif

  break;

//======================================================================

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

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

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

//пользовательского интерфейса

//======================================================================

private void SetStartControlPositionAndState() {

 pictureBoxGameBoard.Width = 240;

 pictureBoxGameBoard.Height = 176;

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

 const int answerButtons_dx = 117;

 const int answerButtons_dy = 18;

 buttonAnswer0.Width = answerButtons_dx;

 buttonAnswer0.Height = answerButtons_dy;

 buttonAnswer1.Size = buttonAnswer0.Size;

 buttonAnswer2.Size = buttonAnswer0.Size;

 buttonAnswer3.Size = buttonAnswer0.Size;

 buttonAnswer4.Size = buttonAnswer0.Size;

 buttonAnswer5.Size = buttonAnswer0.Size;

 buttonShowAnswers_AdvancedVersion.Width = answerButtons_dx;

 buttonShowAnswers_AdvancedVersion.Height = 24;

 buttonShowAnswers_SimpleVersion.Size = buttonShowAnswers_AdvancedVersion.Size;

 //Расстояние (в пикселях) между соседними кнопками

 const int dx_betweenButtons = 3;

 const int dy_betweenButtons = 2;

 const int answerbuttons_beginX = 3;

 //Создать задний план для нашего изображения, чтобы мы видели

 //его в процессе тестирования

 System.Drawing.Bitmap gameBoard;

 gameBoard = new System.Drawing.Bitmap(pictureBoxGameBoard.Width, pictureBoxGameBoard.Height);

 System.Drawing.Graphics gameboard_gfx;

 gameboard_gfx = System.Drawing.Graphics.FromImage(gameBoard);

 gameboard_gfx.Clear(System.Drawing.Color.Yellow);

 System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Blue);

 gameboard_gfx.DrawRectangle(myPen, 2, 2, gameBoard.Width-4, gameBoard.Height-6);

 myPen.Dispose();

 gameboard_gfx.Dispose();

 pictureBoxGameBoard.Image = gameBoard;

 //Разместить текстовое окно, в котором содержатся задаваемые вопросы,

 //a также подробные ответы для пользователей

 textBoxAskQuestion.Left = 0;

 textBoxAskQuestion.Width = 240;

 buttonAskQuestion.Width = 64;

 buttonAskQuestion.Height = 20;

#if PLAYFIELD_ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                        //элементами управления

 const int answerbuttons_beginY = 42;

 const int showanswers_beginY = 77;

 //--------------------------------------------------------

 //Задать кнопки выбора вариантов Easy или Hard режима игры

 //--------------------------------------------------------

 buttonShowAnswers_AdvancedVersion.Top = showanswers_beginY;

 buttonShowAnswers_SimpleVersion.Top = showanswers_beginY;

 //------------------------------

 //Задать набор вариантов ответов

 //------------------------------

 //Задать элемент управления, по которому будут выравниваться

 //все остальные элементы управления

 buttonAnswer0.Top = answerbuttons_beginY;

 //Поместить PictureBox под элементами управления

 pictureBoxGameBoard.Top = (answerButtons_dy + dy_betweenButtons) * 3 + answerbuttons beginY;

 buttonAskQuestion.Top = 0;

 buttonAskQuestion.Left = 174;

 textBoxAskQuestion.Top = 0;

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

      //элементами управления

 const int answerbuttons_beginY = 174;

 //--------------------------------------------------------

 //Задать кнопки выбора вариантов Easy или Hard режима игры

 //--------------------------------------------------------

 buttonShowAnswers_AdvancedVersion.Top = answerbuttons_beginY;

 buttonShowAnswers_SimpleVersion.Top = answerbuttons_beginY;

 //-----------------------------

 //Задать набор вариантов ответа

 //-----------------------------

 //Задать элемент управления, по которому будут выравниваться

 //все остальные элементы управления

 buttonAnswer0.Top = answerbuttons_beginY;

 pictureBoxGameBoard.Top = 0;

 buttonAskQuestion.Top = answerbuttons_beginY;

 buttonAskQuestion.Left = 174;

#endif

 buttonShowAnswers_AdvancedVersion.Left = answerbuttons_beginX;

 buttonShowAnswers_SimpleVersion.Left = buttonShowAnswers_AdvancedVersion.Left + answerButtons_dx + dx betweenButtons;

 pictureBoxGameBoard.Left = 0;

 pictureBoxGameBoard.Width = 240;

 pictureBoxGameBoard.Height = 172;

 buttonAnswer0.Left = answerbuttons_beginX;

 buttonAnswer1.Left = buttonAnswer0.Left + answerButtons_dx + dx_betweenButtons;

 buttonAnswer1.Top = buttonAnswer0.Top;

 //следующий ряд

 buttonAnswer2.Left = buttonAnswer0.Left;

 buttonAnswer2.Top = buttonAnswer0.Top + answerButtons_dy + dy_betweenButtons;

 buttonAnswer3.Left = buttonAnswer2.Left + answerButtons_dx + dx_betweenButtons;

 buttonAnswer3.Top = buttonAnswer2.Top;

 //следующий ряд

 buttonAnswer4.Left = buttonAnswer2.Left;

 buttonAnswer4.Top = buttonAnswer2.Top + answerButtons_dy + dy_betweenButtons;

 buttonAnswer5.Left = buttonAnswer4.Left + answerButtons_dx + dx_betweenButtons;

 buttonAnswer5.Top = buttonAnswer4.Top;

}

//-------------------------------------------------------------

//Вспомогательная функция, которая позволяет задавать состояние

//видимости кнопок, отображающих ответы из словаря

//-------------------------------------------------------------

private void SetAnswerButtonVisibility(bool visibleState) {

 buttonAnswer0.Visible = visibleState;

 buttonAnswer1.Visible = visibleState;

 buttonAnswer2.Visible = visibleState;

 buttonAnswer3.Visible = visibleState;

 buttonAnswer4.Visible = visibleState;

 buttonAnswer5.Visible = visibleState;

}

//-----------------------------------------------------------------

//Вспомогательная функция, вызываемая для задания свойств видимости

//некоторых элементов управления

//-----------------------------------------------------------------

private void SetDifficultyButtonVisibility(bool visibleState) {

 buttonShowAnswers_AdvancedVersion.Visible = visibleState;

 buttonShowAnswers_SimpleVersion.Visible = visibleState;

}

//-------------------------------------------------------------

//Вспомогательная функция, которая позволяет задавать состояние

//видимости кнопок, отображающих ответы из словаря

//-------------------------------------------------------------

private void SetAnswerButtonEnabled(bool enabledState) {

 buttonAnswer0.Enabled = enabledState;

 buttonAnswer1.Enabled = enabledState;

 buttonAnswer2.Enabled = enabledState;

 buttonAnswer3.Enabled = enabledState;

1 ... 119 120 121 122 123 124 125 126 127 ... 206
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре.
Комментарии