Помощь в написании студенческих работ
Антистрессовый сервис

Разработка форм игры

РефератПомощь в написанииУзнать стоимостьмоей работы

На рисунке 3.3 представлена стартовая сцена для прототипа СКДИ. Для формы реализован механизм автоматической генерации кнопок с ДИ, необходимый в связи с тем, что количество ДИ, хранящихся в базе данных, может постоянно дополняться. Для создания кнопок и их размещения на форме был разработан механизм, реализованный в процедуре CreateButtons: Рисунок 3.5. Сцена выбора действия После того как Игрок… Читать ещё >

Разработка форм игры (реферат, курсовая, диплом, контрольная)

Макеты форм, разработанные на этапе проектирования, дорабатывались и изменялись на этапе разработки.

На рисунке 3.3 представлена стартовая сцена для прототипа СКДИ. Для формы реализован механизм автоматической генерации кнопок с ДИ, необходимый в связи с тем, что количество ДИ, хранящихся в базе данных, может постоянно дополняться. Для создания кнопок и их размещения на форме был разработан механизм, реализованный в процедуре CreateButtons:

//countBg — количество кнопок на форме.

//myArrList — список названий кнопок.

private void CreateButtons (int countBG, ArrayList myArrList).

{.

int height = panel1.Size.Height;

int width = panel1.Size.Width;

int locUpDown = 25;

int locLeftRight = 0;

int i = 0;

foreach (Object objReader in myArrList).

{.

string btnName = objReader. ToString ();

Button btn = new Button ();

btn.Name = btnName;

btn.Size = new Size (150, 60);

if (i % 4 == 0 && i≠0).

{.

locUpDown = locUpDown + 85;

locLeftRight = 150;

}.

else.

{ locLeftRight = locLeftRight + 150; }.

btn.Location = new Point (locLeftRight, locUpDown);

btn.Text = objReader. ToString ();

btn.UseVisualStyleBackColor = true;

btn.Click += new EventHandler (btn_Click);

Controls.Add (btn);

btn.BackColor = Color. FromName («GradientInactiveCaption»);

btn.Text = btn.Text.Trim ();

btn.Enabled = true;

i++;

if (btn.Location.X > panel1.Location.X || btn.Location.Y > panel1.Location.Y).

{.

panel1.AutoScroll = true;

if (panel1.AutoScrollMargin.Width < 5 || panel1.AutoScrollMargin.Height < 5).

{.

panel1.SetAutoScrollMargin (5, 5);

}.

}.

panel1.Controls.Add (btn);

}.

}.

В процедуру CreateButtons передаются параметры countBg, myArrList, которые задаются в процедуре SelectFromDB — из базы данных с помощью SQL_запроса выбирается список необходимых для построения форы названий кнопок (ДИ, ресурсы, действия) и определяется количество выбранных названий.

Стартовая сцена.

Рисунок 3.3. Стартовая сцена На рисунке 3.4 представлена сцена взаимодействия с игровыми ресурсами СКДИ. Разделение на блоки управление, входы, выходы, механизмы было исключено из формы, так как было решено перенести механизм, связанный с вычислением штрафа из подсистемы проведения в подсистему мониторинга. На форму выводятся только ресурсы с типом управление (предназначенные только для чтения), то есть нередактируемые пользователем. В качестве таких ресурсов в игре могут использоваться файлы различных форматов, например, jpg, pdf, doc, и тому подобные.

Сцена взаимодействия с ресурсами.

Рисунок 3.4. Сцена взаимодействия с ресурсами При нажатии на кнопку с ресурсом происходит открытие файла, в котором хранится теоретический материал для выполнения задания. Если пользователь уверен в своих знаниях, то он может сразу перейти к выполнению задания, нажав на кнопку «Перейти к выполнению задания». Для работы с ресурсами для каждой сгенерированную кнопку создаётся событие btn_Click, в котором осуществляется поиск пути к файлу ресурса с помощью SQL_запроса к БД и программно описывается открытие файла.

На рисунке 3.5 представлена сцена выбора действия. На форме также задействован механизм автоматической генерации кнопок. При открытии формы Игрок видит набор возможных действий и описание сцены.

Сцена выбора действия.

Рисунок 3.5. Сцена выбора действия После того как Игрок выбирает действие, его код должен быть преобразован к виду двоичного кода. Получение кода действие реализовано за счёт SQL_запроса. Оно описывается в событии, срабатывающим после нажатия на кнопку с выбранным действием:

SqlConnection con = new SqlConnection («Data Source=KATE-ПК;Initial Catalog=CBGS;Integrated Security=True»);

con.Open ();

SqlCommand com = new SqlCommand («select distinct A. term «.

+ «from Actions A «.

+ «where A.name = @name», con);

com.Parameters.Add («@name», System.Data.SqlDbType.VarChar);

com.Parameters[" @name" ]. Value = btnName;

btnName = Convert. ToString (com.ExecuteScalar ()); con. Close ();

В случае если должен производиться безусловный переход по строке ЛСА на форму будет выведено название сцены «Безусловный переход», Игрок должен будет нажать кнопку «Далее».

Если на сцене есть кнопки для выбора действий (не безусловный переход по строке ЛСА), то должно быть реализовано преобразование полученного из SQL_запроса кода действия к виду двоичного кода:

public string BinaryAction (string Act).

{.

string Binary;

if (Act == «»).

{.

Binary = «» ;

return Binary;

}.

else{.

Act.Trim ();

Act.ToUpper ();

Binary = «» ;

char[] mass = Act. ToCharArray ();

for (int i = 0; i < Act. Length — 1; i++).

{.

if (mass[i] == 'P' && i — 1 >= 0).

{.

if (mass[i — 1] == '!').

Binary = Binary + «0» ;

else.

Binary = Binary + «1» ;

}.

else if (mass[i] == 'P' && i == 0).

Binary = Binary + «1» ;

else if (mass[i] == ' ').

break;

}.

return Binary;

}.

}.

Если переход по строке ЛСА был безусловным, то в регистр состояний игры будет записана пустая строка, в противном случае двоичный код. После того, как в форме выбора действий в регистр состояний был записан двоичный код действия, происходит деактивация ОМ и активация АМ.

Показать весь текст
Заполнить форму текущей работой