RSS    

   Дипломная работа: Руководство по разработке динамической логической игры на Visual Basic 6.0

И собственно код обработки:

Private Sub Timer2_Timer()

'Обработка нажатия клавиш "стрелка влево" и "стрелка вправо"

           If (GetAsyncKeyState(vbKeyLeft)) Then

               ' Кнопка влево

               Form1.Caption = "Left"

           ElseIf (GetAsyncKeyState(vbKeyRight)) Then

               ' Кнопка вправо

               Form1.Caption = "Right"

           End If

End Sub

Надписи в заголовке формы "Left" и "Right" выводятся только для отладки.

Переменная markersave однозначно показывает в какой ячейке нижней строки игрового поля стоит маркер. Напишем процедуру перемещения маркера вправо-влево по нижней строке:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

'Обработка нажатия клавиш «стрелка вправо» и «стрелка влево»

           If (GetAsyncKeyState(vbKeyLeft)) Then

               ' Кнопка влево

               Form1.Caption = "Left"

               Move_Point_Left  'Переместить маркер влево

           ElseIf (GetAsyncKeyState(vbKeyRight)) Then

               ' Кнопка вправо

               Form1.Caption = "Right"

               Move_Point_Right  'Переместить маркер вправо

           End If

End Sub

Private Sub Move_Point_Left()

If markersave = 0 Then  'Если самая левая ячейка нижней строки

   markersave = 7         'Левее самой левой ячейки – самая ПРАВАЯ (циклический переход)

   firstset = 0                'Временно разрешить рисование маркера

   Label7.BackColor = savecolor(0) 'Восстановить цвет фона ячейки, где БЫЛ маркер

   Label14_Click           'Переместить маркер (самая правая ячейка!)

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 1 Then

   markersave = 0         'Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label8.BackColor = savecolor(1) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label7_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 2 Then

   markersave = 1         'Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label9.BackColor = savecolor(2) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label8_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 3 Then

   markersave = 2         'Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label10.BackColor = savecolor(3) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label9_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 4 Then

   markersave = 3         'Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label11.BackColor = savecolor(4) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label10_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 5 Then

   markersave = 4         'Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label12.BackColor = savecolor(5) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label11_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

If markersave = 6 Then

   markersave = 5         ''Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label13.BackColor = savecolor(6) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label12_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

If markersave = 7 Then

   markersave = 6         'Поместить левее

   firstset = 0                'Временно разрешить рисование маркера

   Label14.BackColor = savecolor(7) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label13_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

markersave = vt

n = 0

Set_Marker_Count

End Sub

Private Sub Move_Point_Right()

If markersave = 0 Then  'Если самая левая ячейка

   markersave = 1         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label7.BackColor = savecolor(0) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label8_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 1 Then

   markersave = 2         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label8.BackColor = savecolor(1) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label9_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

If markersave = 2 Then

   markersave = 3         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label9.BackColor = savecolor(2) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label10_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

If markersave = 3 Then

   markersave = 4         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label10.BackColor = savecolor(3) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label11_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

If markersave = 4 Then

   markersave = 5         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label11.BackColor = savecolor(4) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label12_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 5 Then

   markersave = 6         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label12.BackColor = savecolor(5) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label13_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

If markersave = 6 Then

   markersave = 7         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label13.BackColor = savecolor(6) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label14_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                      ‘никакой ячейке)

End If

If markersave = 7 Then

   markersave = 0         'Переместить правее (т.к. значение > на 1)

   firstset = 0                'Временно разрешить рисование маркера

   Label14.BackColor = savecolor(7) 'Восстановить цвет ячейки, где БЫЛ маркер

   Label7_Click           'Переместить маркер

   vt = markersave

   markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует

                                     ‘никакой ячейке)

End If

markersave = vt

n = 0

Set_Marker_Count

End Sub

Теперь нужно сделать всего одну процедуру – процедуру сдвига нумерации текущих игровых уровней:

Private Sub Level_Count()

Label6.Caption = Label6.Caption + 1

Label5.Caption = Label6.Caption + 1

Label4.Caption = Label5.Caption + 1

Label3.Caption = Label4.Caption + 1

Label2.Caption = Label3.Caption + 1

End Sub

Подключим процедуру сдвига слоев к работе, например так:

Private Sub Dn_Count()

'Подсчитывать очки при сдвиге сверху вниз

n = 0

Set_Marker_Count

Level_Count 'Сдвинуть уровни Level

End Sub

Полный VB-проект с этого этапа разработки игры -  в файле vbg8.zip

Показательный момент – написаны все процедуры для software-реализации игры Oflameron. Т.е. Вы создали совершенно работоспособную игровую программу на Visual Basic. Представлять ее как коммерческий продукт рано – еще много «шероховатостей». Например, если Click-нуть на объекте Frame, то игра начнется без установки маркера.

Устранению таких «шероховатостей», приданию программе коммерческого вида будет посвящена 2-я часть руководства.

- Часть 2 – доводка игровой программы

- Часть 3 – разработка версии игры на VB для «наладонных» компьютеров

- Часть 4 – разработка версии игры на Delphi

- Часть 5 – разработка версии игры на JAVA для сотовых телефонов

На сайте http://freeproject.narod.ru выложена другая версия программирования игры Oflameron на Visual Basic 6.0

На сайте http://play-man.narod.ru выложена версия игры Oflameron на листочке бумаги. Достаточно просто распечатать игровой бланк из документа MS Word и играть.

Резюме (не полное):

- ассемблер – 8 лет

- JAVA – 4 года

- VB – 6 лет

- PHP – 5 лет

P.S. Не считайте это описание оптимальным. Но это лучшее руководство по программированию игры в РуНет-е.


Страницы: 1, 2, 3, 4, 5


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.