Керівництво з розробки динамічної логічної гри на Visual Basic 6.0 p>
Покрокове опис процесу програмування всіх процедур ігри Oflameron -
Он-Лайн версія.
Даний посібник містить докладне опис процесу розробкиповного аналога JAVA-ігри на Visual Basic 6.0 (частина 1). У наступних частинахдокумента: p>
- Частина 2 - доведення ігрової програми p>
- Частина 3 - розробка версії гри на VB для «наладонних» комп'ютерів p>
- Частина 4 - розробка версії гри на Delphi p>
- Частина 5 - розробка версії гри на JAVA для стільникових телефонів p>
OFLAMERON p>
Частина 1 p>
Створимо проект формату Project EXE. Створимо форму Form1 розміром
2715х5745. На формі розташуємо елемент Frame, а в ньому розмістимо елементи
Label1 - Label55. Де Label1 - Label6 це колонка Level. А Label7 - Label46
- Комірки ігрового поля з номіналами. Label 47-48 - комірки для службовоїінформації. Нижній кольоровий індикатор утворений Label49-Label55. P>
p>
колонці елементів Level і ігровому полю будуть відповідатичислові масиви.
Масив Dim level (5) p>
Масив Dim field (8, 6) p>
Короткий опис гри. Гра починається з установки гравцем маркера вбудь-яку клітинку нижнього ряду осередків (просто Click-ОХФШ мишкою). Така осередоквиділяється синім кольором,
а номінал зайнятої комірки додається (або віднімається) до рахунку гравця.
Нижній кольоровий лінійний індикатор починає зменшуватися. Покиіндикатор не зник, гравець може переміщати ігровий маркер по нижньому рядкувправо або вліво від поточного положення натискаючи на клавіатурі стрілки
«Вправо» або «Ліворуч». Номінали всіх осередків, які буде «проходити»маркер, будуть додаватися (або відніматися) до рахунку. Як тільки веськольоровий лінійний індикатор зникне, гравець не може переміщати свій маркер
(на мить), а номінали всіх осередків зсуваються зверху-вниз на однурядок. Верхній рядок ігрового поля заповнюється новими значеннями відгенератора випадкових чисел. При цьому, номінал осередку, зрушивши зверхуна клітинку, в якій уже знаходиться маркер, так само додається до рахунку --це може суттєво змінити ваш рахунок. Після цього кольоровий лінійнийіндикатор відновлюється і знову починає зменшуватися, а гравець зновуможе переміщати ігровий маркер.
Рахунок гри ведеться у помаранчевій осередку p>
Гра ведеться до тих пір, поки рахунок гравця не стане рівним нулю або маркерне потрапить на клітинку з номіналом | End |. p>
Гра зовсім не така проста, як може здатися. Зовсім легкорозмістити свій маркер так, що на нього зміститься осередок з номіналом | Z | --обнулення рахунку, або | End | - закінчення гри. p>
Тут описується процес програмування «текстової версії»логічної табличній гри «Oflameron». Номінали осередків представлені наекрані в символьному вигляді, а осередки представляють собою елементи Label. Унаступній частині документа буде представлено повний опис процесурозробки графічної версії гри та версії гри для кишенькових комп'ютерів
(PDA). P>
Програмування p>
Заповнимо осередку ігрового (масив field (8, 6)) поля значеннями відгенератора випадкових чисел. Обчислимо кількість секунд в поточному часу істільки разів «прокрутити» цикл із зверненням до генератора випадкових чисел: p>
TM = Time 'Отримати час в змінну
TTMS = Len (TM) 'Визначити довжину рядка з значенням часу
TTM = Mid $ (TM, 7, 2) 'Виділити з рядка кількість секунд p>
For i = 0 To TTM' Цикл з числом повторень, рівною кількостісекунд
Form1.Caption = Int ((20 * Rnd) + 1) 'Значення запишемо в заголовок форми,щоб p>
'подивитися,що працює
Next i p>
Заповнимо масив field (8, 5). Повністю процедура буде:
Private Sub Set_Nominal ()
TM = Time 'Отримати час в змінну
TTMS = Len (TM) 'Визначити довжину рядка з значенням часу
TTM = Mid $ (TM, 7, 2) 'Виділити з рядка кількість секунд p>
For i = 0 To TTM
Form1.Caption = Int ((20 * Rnd) + 1)
Next i
'------------------------------------------------- -
'Заповнимо масив field (8, 5)
For i = 0 To 7
For j = 0 To 4 field (i, j) = Int ((20 * Rnd) + 1)
Next j
Next i
End Sub p>
Тепер можна записати тестову процедуру Private Sub Fdraw () для того,щоб подивитися, як заповнюється масив field (8, 6)
Процедура буде виглядати наступним чином: p>
Private Sub Fdraw ()
Label7.Caption = field (0, 0)
Label8.Caption = field (1, 0)
Label9.Caption = field (2, 0)
Label10.Caption = field (3, 0)
Label11.Caption = field (4, 0)
Label12.Caption = field (5, 0)
Label13.Caption = field (6, 0)
Label14.Caption = field (7, 0)
Label15.Caption = field (0, 1)
Label16.Caption = field (1, 1)
Label17.Caption = field (2, 1)
Label18.Caption = field (3, 1)
Label19.Caption = field (4, 1)
Label20.Caption = field (5, 1)
Label21.Caption = field (6, 1)
Label22.Caption = field (7, 1)
Label23.Caption = field (0, 2)
Label24.Caption = field (1, 2)
Label25.Caption = field (2, 2)
Label26.Caption = field (3, 2)
Label27.Caption = field (4, 2)
Label28.Caption = field (5, 2)
Label29.Caption = field (6, 2)
Label30.Caption = field (7, 2)
Label31.Caption = field (0, 3)
Label32.Caption = field (1, 3)
Label33.Caption = field (2, 3)
Label34.Caption = field (3, 3)
Label35.Caption = field (4, 3)
Label36.Caption = field (5, 3)
Label37.Caption = field (6, 3)
Label38.Caption = field (7, 3)
Label39.Caption = field (0, 4)
Label40.Caption = field (1, 4)
Label41.Caption = field (2, 4)
Label42.Caption = field (3, 4)
Label43.Caption = field (4, 4)
Label44.Caption = field (5, 4)
Label45.Caption = field (6, 4)
Label46.Caption = field (7, 4) p>
End Sub p>
Тобто тут просто кожен осередок записується в Caption кожного отвору. Такийметод не варто вважати оптимальним і у подальшому можна використовуватиінші прийоми програмування. Щоб подивитися резльтати, потрібно вставитивиклик двох процедур Private Sub Set_Nominal () і Private Sub Fdraw () вавтозапуск при старті програми (на час): p>
Private Sub Form_Load ()
Set_Nominal
Fdraw
End Sub p>
Повний проект на Visual Basic цього етапу розробки гри - у файліvbg1.zip p>
Тепер треба створити процедуру, в якій буде аналізуватисякомірки масиву field (8, 6) і в залежності від їх значень будеформуватися потрібне символьне значення (номінал) комірки ігрового поля ізадаватися потрібний колір символу та фону комірки. p>
Перепишемо процедуру Fdraw () в іншу процедуру. Створимо ще одну
Label56 для тимчасового зберігання «згенерованого» номіналу комірки і їїколірних атрибутів (виділена на малюнку). p>
p>
Private Sub Color_Chars () p>
If field (i, j) = 0 Then Label56.Caption = "+ 1 "
If field (i, j) = 0 Then Label56.BackColor = & HBBECF4
If field (i, j) = 0 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 1 Then Label56.Caption = "-1"
If field (i, j) = 1 Then Label56.BackColor = & HBBECF4
If field (i, j) = 1 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 2 Then Label56.Caption = "5"
If field (i, j) = 2 Then Label56.BackColor = & HBBECF4
If field (i, j) = 2 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 3 Then Label56.Caption = "-5"
If field (i, j) = 3 Then Label56.BackColor = & HBBECF4
If field (i, j) = 3 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 4 Then Label56.Caption = "10"
If field (i, j) = 4 Then Label56.BackColor = & HBBECF4
If field (i, j) = 4 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 5 Then Label56.Caption = "-10"
If field (i, j) = 5 Then Label56.BackColor = & HBBECF4
If field (i, j) = 5 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 6 Then Label56.Caption = "15"
If field (i, j) = 6 Then Label56.BackColor = & HBBECF4
If field (i, j) = 6 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 7 Then Label56.Caption = "-15"
If field (i, j) = 7 Then Label56.BackColor = & HBBECF4
If field (i, j) = 7 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 8 Then Label56.Caption = "25"
If field (i, j) = 8 Then Label56.BackColor = & HBBECF4
If field (i, j) = 8 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 9 Then Label56.Caption = "T"
If field (i, j) = 9 Then Label56.BackColor = & HABCFBB
If field (i, j) = 9 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 10 Then Label56.Caption = "P"
If field (i, j) = 10 Then Label56.BackColor = & HFFC0C0
If field (i, j) = 10 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 11 Then Label56.Caption = "B"
If field (i, j) = 11 Then Label56.BackColor = & H80FFFF
If field (i, j) = 11 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 12 Then Label56.Caption = "Z"
If field (i, j) = 12 Then Label56.BackColor = & H40 &
If field (i, j) = 12 Then Label56.ForeColor = & HFFFFFF p>
If field (i, j) = 13 Then Label56.Caption = "Z"
If field (i, j) = 13 Then Label56.BackColor = & H40 &
If field (i, j) = 13 Then Label56.ForeColor = & HFFFFFF p>
If field (i, j) = 14 Then Label56.Caption = "End"
If field (i, j) = 14 Then Label56.BackColor = & HFF &
If field (i, j) = 14 Then Label56.ForeColor = & HFFFFFF p>
If field (i, j) = 15 Then Label56.Caption = "-10"
If field (i, j) = 15 Then Label56.BackColor = & HBBECF4
If field (i, j) = 15 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 16 Then Label56.Caption = "-5"
If field (i, j) = 16 Then Label56.BackColor = & HBBECF4
If field (i, j) = 16 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 17 Then Label56.Caption = "-1"
If field (i, j) = 17 Then Label56.BackColor = & HBBECF4
If field (i, j) = 17 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 18 Then Label56.Caption = "1"
If field (i, j) = 18 Then Label56.BackColor = & HBBECF4
If field (i, j) = 18 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 19 Then Label56.Caption = "5"
If field (i, j) = 19 Then Label56.BackColor = & HBBECF4
If field (i, j) = 19 Then Label56.ForeColor = & H80000008 p>
End Sub p>
Тепер додамо копіювання значення і атрибутів осередку Label56 в клітинкуігрового поля і використовуємо кілька циклів для обробки всього масивуfield (8, 6): p>
- приклад копіювання
Label7.Caption = Label56.Caption
Label7.BackColor = Label56.BackColor
Label7.ForeColor = Label56.ForeColor p>
У результаті з'явиться процедура Sub Field_Fill () копіювання номіналів з
«Чергової» комірки Label56, а процедура Color_Chars () зміниться наступнимтак: p>
Private Sub Color_Chars () p>
If field (i, j) = 0 Then Label56.Caption = "1"
If field (i, j) = 0 Then Label56.BackColor = & HBBECF4
If field (i, j) = 0 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 1 Then Label56.Caption = "-1"
If field (i, j) = 1 Then Label56.BackColor = & HBBECF4
If field (i, j) = 1 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 2 Then Label56.Caption = "5"
If field (i, j) = 2 Then Label56.BackColor = & HBBECF4
If field (i, j) = 2 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 3 Then Label56.Caption = "-5"
If field (i, j) = 3 Then Label56.BackColor = & HBBECF4
If field (i, j) = 3 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 4 Then Label56.Caption = "10"
If field (i, j) = 4 Then Label56.BackColor = & HBBECF4
If field (i, j) = 4 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 5 Then Label56.Caption = "-10"
If field (i, j) = 5 Then Label56.BackColor = & HBBECF4
If field (i, j) = 5 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 6 Then Label56.Caption = "15"
If field (i, j) = 6 Then Label56.BackColor = & HBBECF4
If field (i, j) = 6 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 7 Then Label56.Caption = "-15"
If field (i, j) = 7 Then Label56.BackColor = & HBBECF4
If field (i, j) = 7 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 8 Then Label56.Caption = "25"
If field (i, j) = 8 Then Label56.BackColor = & HBBECF4
If field (i, j) = 8 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 9 Then Label56.Caption = "T"
If field (i, j) = 9 Then Label56.BackColor = & HABCFBB
If field (i, j) = 9 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 10 Then Label56.Caption = "P"
If field (i, j) = 10 Then Label56.BackColor = & HFFC0C0
If field (i, j) = 10 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 11 Then Label56.Caption = "B"
If field (i, j) = 11 Then Label56.BackColor = & H80FFFF
If field (i, j) = 11 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 12 Then Label56.Caption = "Z"
If field (i, j) = 12 Then Label56.BackColor = & H40 &
If field (i, j) = 12 Then Label56.ForeColor = & HFFFFFF p>
If field (i, j) = 13 Then Label56.Caption = "Z"
If field (i, j) = 13 Then Label56.BackColor = & H40 &
If field (i, j) = 13 Then Label56.ForeColor = & HFFFFFF p>
If field (i, j) = 14 Then Label56.Caption = "End"
If field (i, j) = 14 Then Label56.BackColor = & HFF &
If field (i, j) = 14 Then Label56.ForeColor = & HFFFFFF p>
If field (i, j) = 15 Then Label56.Caption = "-10"
If field (i, j) = 15 Then Label56.BackColor = & HBBECF4
If field (i, j) = 15 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 16 Then Label56.Caption = "-5"
If field (i, j) = 16 Then Label56.BackColor = & HBBECF4
If field (i, j) = 16 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 17 Then Label56.Caption = "-1"
If field (i, j) = 17 Then Label56.BackColor = & HBBECF4
If field (i, j) = 17 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 18 Then Label56.Caption = "1"
If field (i, j) = 18 Then Label56.BackColor = & HBBECF4
If field (i, j) = 18 Then Label56.ForeColor = & H80000008 p>
If field (i, j) = 19 Then Label56.Caption = "5"
If field (i, j) = 19 Then Label56.BackColor = & HBBECF4
If field (i, j) = 19 Then Label56.ForeColor = & H80000008 p>
'Label7.Caption = Label56.Caption
'Label7.BackColor = Label56.BackColor
'Label7.ForeColor = Label56.ForeColor
'Form1.Caption = field (0, 0) p>
End Sub
Private Sub Field_Fill ()
'Копіювання номіналів і атрибутів з «черговою» комірки Label56k = 0 'Счетчик осередків
For j = 0 To 4
For i = 0 To 7
Color_Chars 'Відправлено таке значення з масиву field (i, j) в
Label56 p>
'і обчислити колірні атрибути символу і фону за їїноміналом
If k = 0 Then Label7.Caption = Label56.Caption
If k = 0 Then Label7.BackColor = Label56.BackColor
If k = 0 Then Label7.ForeColor = Label56.ForeColor p>
If k = 1 Then Label8.Caption = Label56.Caption
If k = 1 Then Label8.BackColor = Label56.BackColor
If k = 1 Then Label8.ForeColor = Label56.ForeColor p> < p> If k = 2 Then Label9.Caption = Label56.Caption
If k = 2 Then Label9.BackColor = Label56.BackColor
If k = 2 Then Label9.ForeColor = Label56.ForeColor p>
If k = 3 Then Label10.Caption = Label56.Caption
If k = 3 Then Label10.BackColor = Label56.BackColor
If k = 3 Then Label10.ForeColor = Label56.ForeColor p>
If k = 4 Then Label11.Caption = Label56.Caption
If k = 4 Then Label11.BackColor = Label56.BackColor
If k = 4 Then Label11.ForeColor = Label56.ForeColor p>
If k = 5 Then Label12.Caption = Label56.Caption
If k = 5 Then Label12.BackColor = Label56.BackColor
If k = 5 Then Label12.ForeColor = Label56.ForeColor p>
If k = 6 Then Label13.Caption = Label56.Caption
If k = 6 Then Label13.BackColor = Label56.BackColor
If k = 6 Then Label13.ForeColor = Label56.ForeColor p>
If k = 7 Then Label14.Caption = Label56.Caption
If k = 7 Then Label14.BackColor = Label56.BackColor
If k = 7 Then Label14.ForeColor = Label56.ForeColor p>
If k = 8 Then Label15.Caption = Label56.Caption
If k = 8 Then Label15.BackColor = Label56.BackColor
If k = 8 Then Label15.ForeColor = Label56.ForeColor p>
If k = 9 Then Label16.Caption = Label56.Caption
If k = 9 Then Label16.BackColor = Label56.BackColor
If k = 9 Then Label16.ForeColor = Label56.ForeColor p>
If k = 10 Then Label17 . Caption = Label56.Caption
If k = 10 Then Label17.BackColor = Label56.BackColor
If k = 10 Then Label17.ForeColor = Label56.ForeColor p>
If k = 11 Then Label18. Caption = Label56.Caption
If k = 11 Then Label18.BackColor = Label56.BackColor
If k = 11 Then Label18.ForeColor = Label56.ForeColor p>
If k = 12 Then Label19.Caption = Label56.Caption
If k = 12 Then Label19.BackColor = Label56.BackColor
If k = 12 Then Label19.ForeColor = Label56.ForeColor p>
If k = 13 Then Label20.Caption = Label56.Caption
If k = 13 Then Label20.BackColor = Label56.BackColor
If k = 13 Then Label20.ForeColor = Label56.ForeColor p>
If k = 14 Then Label21.Caption = Label56 . Caption
If k = 14 Then Label21.BackColor = Label56.BackColor
If k = 14 Then Label21.ForeColor = Label56.ForeColor p>
If k = 15 Then Label22.Caption = Label56. Caption
If k = 15 Then Label22.BackColor = Label56.BackColor
If k = 15 Then Label22.ForeColor = Label56.ForeColor p>
If k = 16 Then Label23.Caption = Label56.Caption
If k = 16 Then Label23.BackColor = Label56.BackColor
If k = 16 Then Label23.ForeColor = Label56.ForeColor p>
If k = 17 Then Label24.Caption = Label56.Caption < br> If k = 17 Then Label24.BackColor = Label56.BackColor
If k = 17 Then Label24.ForeColor = Label56.ForeColor p>
If k = 18 Then Label25.Caption = Label56.Caption
If k = 18 Then Label25.BackColor = Label56.BackColor
If k = 18 Then Label25.ForeColor = Label56.ForeColor p>
If k = 19 Then Label26.Caption = Label56.Caption
If k = 19 Then Label26.BackColor = Label56.BackColor
If k = 19 Then Label26.ForeColor = Label56.ForeColor p>
If k = 20 Then Label27.Caption = Label56.Caption
If k = 20 Then Label27.BackColor = Label56.BackColor
If k = 20 Then Label27.ForeColor = Label56.ForeColor p>
If k = 21 Then Label28.Caption = Label56.Caption
If k = 21 Then Label28.BackColor = Label56.BackColor
If k = 21 Then Label28.ForeColor = Label56.ForeColor p>
If k = 22 Then Label29.Caption = Label56.Caption
If k = 22 Then Label29.BackColor = Label56.BackColor
If k = 22 Then Label29.ForeColor = Label56.ForeColor p>
If k = 23 Then Label30.Caption = Label56.Caption
If k = 23 Then Label30.BackColor = Label56.BackColor
If k = 23 Then Label30.ForeColor = Label56.ForeColor p>
If k = 24 Then Label31.Caption = Label56.Caption
If k = 24 Then Label31.BackColor = Label56.BackColor
If k = 24 Then Label31.ForeColor = Label56.ForeColor p>
If k = 25 Then Label32.Caption = Label56.Caption
If k = 25 Then Label32 . BackColor = Label56.BackColor
If k = 25 Then Label32.ForeColor = Label56.ForeColor p>
If k = 26 Then Label33.Caption = Label56.Caption
If k = 26 Then Label33. BackColor = Label56.BackColor
If k = 26 Then Label33.ForeColor = Label56.ForeColor p>
If k = 27 Then Label34.Caption = Label56.Caption
If k = 27 Then Label34.BackColor = Label56.BackColor
If k = 27 Then Label34.ForeColor = Label56.ForeColor p>
If k = 28 Then Label35.Caption = Label56.Caption
If k = 28 Then Label35.BackColor = Label56.BackColor
If k = 28 Then Label35.ForeColor = Label56.ForeColor p>
If k = 29 Then Label36.Caption = Label56.Caption
If k = 29 Then Label36.BackColor = Label56 . BackColor
If k = 29 Then Label36.ForeColor = Label56.ForeColor p>
If k = 30 Then Label37.Caption = Label56.Caption
If k = 30 Then Label37.BackColor = Label56. BackColor
If k = 30 Then Label37.ForeColor = Label56.ForeColor p>
If k = 31 Then Label38.Caption = Label56.Caption
If k = 31 Then Label38.BackColor = Label56.BackColor
If k = 31 Then Label38.ForeColor = Label56.ForeColor p>
If k = 32 Then Label39.Caption = Label56.Caption
If k = 32 Then Label39.BackColor = Label56.BackColor < br> If k = 32 Then Label39.ForeColor = Label56.ForeColor p>
If k = 33 Then Label40.Caption = Label56.Caption
If k = 33 Then Label40.BackColor = Label56.BackColor
If k = 33 Then Label40.ForeColor = Label56.ForeColor p>
If k = 34 Then Label41.Caption = Label56.Caption
If k = 34 Then Label41.BackColor = Label56.BackColor
If k = 34 Then Label41.ForeColor = Label56.ForeColor p>
If k = 35 Then Label42.Caption = Label56.Caption
If k = 35 Then Label42.BackColor = Label56.BackColor
If k = 35 Then Label42.ForeColor = Label56.ForeColor p>
If k = 36 Then Label43.Caption = Label56.Caption
If k = 36 Then Label43.BackColor = Label56.BackColor
If k = 36 Then Label43.ForeColor = Label56.ForeColor p>
If k = 37 Then Label44.Caption = Label56.Caption
If k = 37 Then Label44.BackColor = Label56.BackColor
If k = 37 Then Label44.ForeColor = Label56.ForeColor p>
If k = 38 Then Label45.Caption = Label56.Caption
If k = 38 Then Label45.BackColor = Label56.BackColor
If k = 38 Then Label45.ForeColor = Label56.ForeColor p>
If k = 39 Then Label46.Caption = Label56.Caption
If k = 39 Then Label46.BackColor = Label56.BackColor
If k = 39 Then Label46.ForeColor = Label56.ForeColor p>
k = k + 1
Next i
Next j
End Sub p>
Такий варіант заповнення ігрового поля початкові значення (при стартігри) не можна вважати оптимальним. Проте він дуже наочний для розумінняалгоритму. p>
Процедура Form_Load () тепер буде виглядати так: p>
Private Sub Form_Load ()
Set_Nominal
Fdraw
Field_Fill
End Sub p>
Для того, щоб подивитися, як все працює, додамо ще одну процедуру
Form_Click () (на деякий час. Для налагодження): p>
Private Sub Form_Click ()
Set_Nominal 'Заповнити масив field (i, j)
Fdraw 'Намалювати на ігровому полі значення масиву field (i, j)
- Для налагодження
Field_Fill 'Намалювати реальні номінали осередків та кольорові атрибути
End Sub p>
- вона повністю ідентична процедурі Form_Load () p>
Тепер, клікая мишкою на полі форми Form1 (тільки форми), Ви можетеподивитися, що значення номіналів осередків та їх кольорові атрибути міняютьсяправильно. p>
Повний VB-проект з цього етапу розробки гри - у файлі vbg2.zip p>
Процедуру Form_Click () можна видалити. p>
Розробимо процедуру Num_Move () , переписують значення і колірніатрибути осередків ігрового поля порядково, зверху - вниз. А так само --що заповнює верхній ряд ігрового поля нових значень (тобто новізначення комірок як би вводяться зверху ігрового поля). Процедура будемістити просто оператори копіювання. Ви можете самі розробити більшоптимальний алгоритм копіювання. p>
Private Sub Num_Move ()
For j = 0 To 4
For i = 0 To 7 field (i, j) = field (i, j + 1)
Next i
Next j p>
Field_Fill 'Намалювати нові значення на екран p>
End Sub p>
Щоб подивитися, як працює копіювання значень і атрибутів осередківзверху вниз, створимо «тимчасову» процедуру обробки Click-а на рамці
Frame1:
Private Sub Frame1_Click ()
Num_Move
End Sub p>
Повний VB-проект з цього етапу розробки гри - у файлі vbg3.zip p>
Тепер потрібно додати код Private Sub Up_Str_App () для заповненняверхнього рядка ігрового поля новими значеннями. p>
Private Sub Up_Str_App ()
TM = Time 'Прочитати поточний час
TTMS = Len (TM) 'Фраза з часом
TTM = Mid $ (TM, 7, 2) 'Виділити секунди p>
For i = 0 To TTM' Повторити цикл стільки разів, скільки секунд
Next i
'------------------------------------------------- -
'Заповнити верхній рядок масиву field (i, 5)
For i = 0 To 7 field (i, 5) = Int ((20 * Rnd) + 1)
Next i
'------------------------------------------------- -
'Заповнити верхній рядок номіналами, копіюючи їх з Label56 p>
Field_Fill' перемалювати значення на екрані, з новими значеннями верхньоїрядка
End Sub p>
Підключимо виклик процедури в Frame1.Click
Повний VB-проект з цього етапу розробки гри - у файлі vbg4.zip
Покликати мишкою на полі Frame1 і подивіться, як все працює! P>
Тепер треба написати код обробки постановки гравцем ігровогомаркера в будь-яку з комірок нижнього рядка ігрового поля. p>
Процедура для збереження колірних атрибутів всіх осередків нижнього рядка довстановлення маркера: p>
Private Sub Save_Color ()savecolor (0) = Label7.BackColor 'Запам'ятати колір фону Label7savecolor (1) = Label8.BackColor 'Запам'ятати колір фону Label8savecolor (2) = Label9.BackColor 'Запам'ятати колір фону Label9savecolor (3) = Label10.BackColor 'Запам'ятати колір фону Label10savecolor (4) = Label11.BackColor 'Запам'ятати колір фону Label11savecolor (5) = Label12.BackColor 'Запам'ятати колір фону Label12savecolor (6) = Label13.BackColor 'Запам'ятати колір фону Label13savecolor (7) = Label14.BackColor 'Запам'ятати колір фону Label14
End Sub p>
Створимо тригер firstset = 0
Тригер = 0, якщо маркер в нижній рядок ще не ставили. P>
Загальний фрагмент коду, що обробляє встановлення маркера в нижній рядок: p>
Private Sub Label7_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label7.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 0 'Маркер у клітинці, що відповідає savecolor (0)
End Sub
Private Sub Label8_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label8.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 1 'Маркер у клітинці, що відповідає savecolor (1)
End Sub
Private Sub Label9_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label9.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 2 'Маркер у клітинці, що відповідає savecolor (2)
End Sub
Private Sub Label10_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label10.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 3 'Маркер у клітинці, що відповідає savecolor (3)
End Sub
Private Sub Label11_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label11.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 4 'Маркер у клітинці, що відповідає savecolor (4)
End Sub
Private Sub Label12_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label12.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 5 'Маркер у клітинці, що відповідає savecolor (5)
End Sub
Private Sub Label13_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label13.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 6 'Маркер у клітинці, що відповідає savecolor (6)
End Sub
Private Sub Label14_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону всіх осередків нижнійрядка
If firstset = 0 Then Label14.BackColor = & HFF0000 'Маркер СИНЕГО кольору
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 7 'Маркер у клітинці, що відповідає savecolor (7)
End Sub
Private Sub Save_Color ()savecolor (0) = Label7.BackColor 'Запам'ятати попередній колір фону Label7savecolor (1) = Label8.BackColor 'Запам'ятати попередній колір фону Label8savecolor (2) = Label9.BackColor 'Запам'ятати попередній колір фону Label9savecolor (3) = Label10.BackColor 'Запам'ятати попередній колір фону Label10savecolor (4) = Label11.BackColor 'Запам'ятати попередній колір фону Label11savecolor (5) = Label12.BackColor 'Запам'ятати попередній колір фону Label12savecolor (6) = Label13.BackColor 'Запам'ятати попередній колір фону Label13savecolor (7) = Label14.BackColor 'Запам'ятати попередній колір фону Label14 p>
End Sub p>
p>
Процедура Save_Color () буде використано для відновлення кольоруосередків при переміщенні маркера по горизонталі (по нижній частині ігровогополя). p>
Створимо змінну markersave в якій будемо запам'ятовувати НОМЕР ЕЛЕМЕНТАмасиву savecolor (j), яка відповідає комірці з маркером (до якоїпоставили маркер). p>
Можна перевірити, що маркер можливо поставити тільки в одне відділення. Теперпотрібно забезпечити збереження маркера (забарвлення осередки в синій колір) призрушуванні осередків зверху-вниз. p>
Процедура відновлення кольору маркера після усунення осередків ігрового полязверху-вниз: p>
Private Sub Marker_Reset ()
If markersave = 0 Then Label7.BackColor = & HFF0000
If markersave = 1 Then Label8.BackColor = & HFF0000
If markersave = 2 Then Label9.BackColor = & HFF0000
If markersave = 3 Then Label10.BackColor = & HFF0000
If markersave = 4 Then Label11.BackColor = & HFF0000
If markersave = 5 Then Label12.BackColor = & HFF0000
If markersave = 6 Then Label13.BackColor = & HFF0000
If markersave = 7 Then Label14.BackColor = & HFF0000
End Sub p>
Тепер «підключимо» процедуру Marker_Reset () до роботи у процедурі зсувувниз. У самий низ процедури Frame1_Click () вставимо наступний код (виділенийчервоним кольором): p>
Private Sub Frame1_Click ()
Num_Move 'Перемістити значення всіх рядків на одну вниз
Up_Str_App 'Заповнити верхній рядок новими номіналами p>
Marker_Reset' Відновити маркер p>
End Sub p>
Повний VB-проект з цього етапу розробки гри - у файлі vbg5.zip
Напишемо процедуру підрахунку очок при установці маркера на початку гри. p>
Private Sub Set_Marker_Count ()
'Підрахунок очок при постановці маркера
Dim et 'У цю змінну будуть записані результати перерахунку значеньмасиву field (i, j) p>
'в номінал осередків
If n = 0 Then
'В яку з комірок поставлений маркер - які клітинки field (i, j) ейвідповідають
If markersave = 0 Then et = field (0, 0)
If markersave = 1 Then et = field (1, 0)
If markersave = 2 Then et = field (2, 0)
If markersave = 3 Then et = field (3, 0)
If markersave = 4 Then et = field (4, 0)
If markersave = 5 Then et = field (5, 0)
If markersave = 6 Then et = field (6, 0)
If markersave = 7 Then et = field (7, 0) p>
'Написати рахунок
If et = 0 Then Label48.Caption = Label48.Caption + 1
If et = 1 Then Label48.Caption = Label48.Caption - 1
If et = 2 Then Label48.Caption = Label48.Caption + 5
If et = 3 Then Label48.Caption = Label48.Caption - 5
If et = 4 Then Label48.Caption = Label48.Caption + 10
If et = 5 Then Label48.Caption = Label48.Caption - 10
If et = 6 Then Label48.Caption = Label48.Caption + 15
If et = 7 Then Label48.Caption = Label48.Caption - 15
If et = 8 Then Label56.Caption = Label48.Caption + 25
If et = 9 Then Label48.Caption = Label48.Caption + 500
If et = 10 Then Label48.Caption = Label48.Caption + 100
If et = 11 Then Label48.Caption = Label48.Caption - 200
If et = 12 Then Label48.Caption = 0
If et = 13 Then Label48.Caption = 0
If et = 14 Then End
If et = 15 Then Label48.Caption = Label48.Caption - 10
If et = 16 Then Label48.Caption = Label48.Caption - 5
If et = 17 Then Label48.Caption = Label48.Caption - 1
If et = 18 Then Label48.Caption = Label48.Caption + 1
If et = 19 Then Label48.Caption = Label48.Caption + 5
If et = 20 Then Label48.Caption = Label48.Caption - 25n = 1 'Більше не обробляти, тому що маркер вже намальований
End If
End Sub p>
Тепер «підключимо» процедуру підрахунку очок - у кожну з процедур Click-адля осередків нижній рядки: p>
Private Sub Label7_Click ()
If firstset = 0 Then Save_Color 'Запам'ятати колір фону
If firstset = 0 Then Label7.BackColor = & HFF0000 'Поставить колір фонумаркера (синій)
If firstset = 0 Then firstset = 1 'Більше не оброблятиmarkersave = 0 'Вказує на клітинку, в яку встановлено маркер
Set_Marker_Count 'Скорегувати рахунок
End Sub
Для інших осередків нижнього рядка - точно так само. P>
Тепер напишемо процедуру підрахунку очок при зсуві осередків зверху - вниз.
Процедура буде виглядати надзвичайно просто: p>
Private Sub Dn_Count ()
'Підрахувати очки при зсуві зверху - внизn = 0 'Тимчасово дозволити роботу процедури Set_Marker_Count
Set_Marker_Count 'Процедура підрахунку очок при постановці маркера
End Sub p>
Для демонстрації роботи процедури вставимо її виклик до процедури зсуву рядівосередків зверху - вниз Frame1_Click (): p>
Private Sub Frame1_Click ()
Num_Move 'Перемістити номінали всіх осередків зверху - вниз
Up_Str_App 'Заповнити верхній рядок ігрового поля новими номіналами p>
Marker_Reset' Відновити маркер
Dn_Count 'Підрахувати очки при зсуві зверху - вниз
End Sub p>
Повний VB-проект з цього етапу розробки гри - у файлі vbg6.zip p>
Створимо процедуру роботи кольорового лінійного індикатора. Додамо на формутаймер Timer1 і відразу «дозволимо» його. p>
Private Sub Timer1_Timer ()
IndLent = IndLent + 1
If IndLent = 9 Then p>
IndLent = 0 p>
Timer1.Interval = 500 'Відновимо інтервал таймера
End If
Print_Ind 'Намалюємо індикатор
End Sub p>
Процедура малювання індикатора: p>
Private Sub Print_Ind ()
If IndLent = 1 Then Label55.Visible = False 'загасити елемент індикатора
If IndLent = 2 Then Label54.Visible = False 'загасити елемент індикатора
If IndLent = 3 Then Label53.Visible = False 'загасити елемент індикатора
If IndLent = 4 Then Label52.Visible = False 'загасити елемент індикатора
If IndLent = 5 Then Label51.Visible = False 'загасити елемент індикатора
If IndLent = 6 Then Label50.Visible = False 'загасити елемент індикатора
If IndLent = 7 Then Label49.Visible = False 'загасити елемент індикатора
If IndLent = 7 Then Timer1.Interval = 100 'Зменшити інтервал, щобіндикатор p>
'відновлювався швидше
If IndLent = 0 Then 'Намалюватиіндикатор повністю p>
Label55.Visible = True p>
Label54.Visible = True p>
Label53.Visible = True p>
Label52.Visible = True p>
Label51.Visible = True p>
Label50.Visible = True p>
Label49.Visible = True
End If
End Sub p>
Можна подивитися, як індикатор працює. P>
Тепер таймер потрібно «задізейбліть» і вирішувати тільки після того, якмаркер буде поставлений в нижній рядок ігрового поля. Дозвіл таймеравставимо в процедуру постановки маркера на нижній частині ігрового поля (аточніше - в процедуру підрахунку очок після встановлення маркера
Set_Marker_Count (), тому що вона є спільною для всіх осередків нижнього рівня).
Наприкінці процедури Set_Marker_Count () з'явиться рядок: p>
Timer1.Enabled = True 'Дозволити таймер, тому що маркер поставлений p>
Повний VB-проект з цього етапу розробки гри - у файлі vbg7.zip p>
Коли кольоровий лінійний індикатор повністю зникне, необхідно зрушитивсі рядки з комірками ігрового поля зрушити вниз (процедура Frame1_Click ()
), На маркер, підрахувати окуляри і заповнити верхній рядок ігрового поляновими значеннями номіналів.
Процедура роботи таймера Timer1 буде виглядати наступним чином: p>
Private Sub Timer1_Timer ()
IndLent = IndLent + 1
If IndLent = 9 Then p>
IndLent = 0 p>
Timer1.Interval = 500 p>
Frame1_Click 'Перемістити рівні
End If
Print_Ind 'Намалювати індикатор
End Sub p>
Тепер треба написати обробку натискань клавіш і переміщення маркера вправо -ліворуч по нижньому рядку осередків ігрового поля. p>
Розмістимо на формі Form1 ще один таймер Timer2. Поставимо інтервал часудля Timer2 = 50 і помістимо в процедуру роботи принтера код перевіркистану клавіш:
Оголосимо потрібне для роботи процедури: p>
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long)
As Integer p>
І власне код обробки: p>
Private Sub Timer2_Timer ()
'Обробка натиснення клавіш "стрілка вліво" і "стрілка вправо" p>
If (GetAsyncKeyState (vbKeyLeft)) Then p>
' Кнопка вліво p>
Form1.Caption = " Left " p>
ElseIf (GetAsyncKeyState (vbKeyRight)) Then p>
'Кнопка вправо p>
Form1.Caption =" Right " p>
End If
End Sub p>
Написи в заголовку форми "Left" і "Right" виводяться тільки для налагодження. P>
Змінна markersave однозначно показує в якій клітинці нижнього рядкаігрового поля стоїть маркер. Напишемо процедуру переміщення маркера вправо -вліво по нижній рядок: p>
Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
'Обробка натиснення клавіш "стрілка вправо» і «стрілка вліво» p>
If (GetAsyncKeyState (vbKeyLeft)) Then p>
' Кнопка вліво p>
Form1.Caption = " Left " p>
Move_Point_Left 'Перемістити маркер вліво p>
ElseIf (GetAsyncKeyState (vbKeyRight)) Then p>
' Кнопка вправо p>
Form1.Caption = "Right" p>
Move_Point_Right 'Перемістити маркер праворуч p>
End If p>
End Sub p>
Private Sub Move_Point_Left ()
If markersave = 0 Then 'Якщо сама ліва комірка нижнього рядка markersave = 7' Ліворуч від самої лівої комірки - сама ПРАВА
(циклічний перехід) firstset = 0 'Тимчасово дозволити малювання маркера p>
Label7.BackColor = savecolor (0)' Відновити колір фону клітинки, де БУВмаркер p>
Label14_Click 'Перемістити маркер (сама права осередок!) vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 1 Then markersave = 0 'Відправлено лівіше firstset = 0' Тимчасово дозволити малювання маркера p>
Label8.BackColor = savecolor (1) 'Відновити колір комірки, де БУВмаркер p>
Label7_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 2 Then markersave = 1 'Відправлено лівіше firstset = 0' Тимчасово дозволити малювання маркера p>
Label9.BackColor = savecolor (2) 'Відновити колір комірки, де БУВмаркер p>
Label8_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 3 Then markersave = 2 'Відправлено лівіше firstset = 0' Тимчасово дозволити малювання маркера p>
Label10.BackColor = savecolor (3) 'Відновити колір комірки, де БУВмаркер p>
Label9_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 4 Then markersave = 3 'Відправлено лівіше firstset = 0' Тимчасово дозволити малювання маркера p>
Label11.BackColor = savecolor (4) 'Відновити колір комірки, де БУВмаркер p>
Label10_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 5 Then markersave = 4 'Відправлено лівіше firstset = 0' Тимчасово дозволити малювання маркера p>
Label12.BackColor = savecolor (5) 'Відновити колір комірки, де БУВмаркер p>
Label11_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 6 Then markersave = 5''Помістити лівіше firstset = 0 'Тимчасово дозволити малювання маркера p>
Label13.BackColor = savecolor (6)' Відновити колір комірки, де БУВмаркер p>
Label12_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 7 Then markersave = 6 'Відправлено лівіше firstset = 0' Тимчасово дозволити малювання маркера p>
Label14.BackColor = savecolor (7) 'Відновити колір комірки, де БУВмаркер p>
Label13_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
markersave = vtn = 0
Set_Marker_Count p>
End Sub
Private Sub Move_Point_Right ()
If markersave = 0 Then 'Якщо сама ліва комірка markersave = 1' Перемістити правіше (тому що значення> на 1) firstset = 0 'Тимчасово дозволити малювання маркера p>
Label7.BackColor = savecolor (0)' Відновити колір комірки, де БУВмаркер p>
Label8_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 1 Then markersave = 2 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label8.BackColor = savecolor (1) 'Відновити колір комірки, де БУВмаркер p>
Label9_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 2 Then markersave = 3 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label9.BackColor = savecolor (2) 'Відновити колір комірки, де БУВмаркер p>
Label10_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 3 Then markersave = 4 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label10.BackColor = savecolor (3) 'Відновити колір комірки, де БУВмаркер p>
Label11_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 4 Then markersave = 5 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label11.BackColor = savecolor (4) 'Відновити колір комірки, де БУВмаркер p>
Label12_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 5 Then markersave = 6 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label12.BackColor = savecolor (5) 'Відновити колір комірки, де БУВмаркер p>
Label13_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 6 Then markersave = 7 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label13.BackColor = savecolor (6) 'Відновити колір комірки, де БУВмаркер p>
Label14_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
If markersave = 7 Then markersave = 0 'Перемістити правіше (тому що значення> на 1) firstset = 0' Тимчасово дозволити малювання маркера p>
Label14.BackColor = savecolor (7) 'Відновити колір комірки, де БУВмаркер p>
Label7_Click 'Перемістити маркер vt = markersave markersave = 10' Заборонити помилкові спрацьовування (значення 10 невідповідає p>
'ніякої клітинці)
End If p>
markersave = vtn = 0
Set_Marker_Count p>
End Sub p>
Тепер потрібно зробити всього одну процедуру - процедуру зсуву нумераціїпоточних ігрових рівнів: p>
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 p>
Підключимо процедуру зсуву шарів до роботи, наприклад так: p>
Private Sub Dn_Count ()
'Підраховувати очки при зсуві зверху внизn = 0
Set_Marker_Count
Level_Count 'Перемістити рівні Level
End Sub p>
Повний VB-проект з цього етапу розробки гри - у файлі vbg8.zip p>
Показовий момент - написані всі процедури для software-реалізаціїігри Oflameron. Тобто Ви створили абсолютно працездатну ігровупрограму на Visual Basic. Представляти її як комерційний продукт рано --ще багато «шорсткостей». Наприклад, якщо Click-ОХФШ на об'єкті Frame, тогра почнеться без встановлення маркера. p>
Усуненню таких «шорсткостей», наданню програмою комерційноговиду буде присвячена 2-а частина керівництва. p>
- Частина 2 - доведення ігрової програми p>
- Частина 3 - розробка версії гри на VB для «наладонних» комп'ютерів p>
- Частина 4 - розробка версії гри на Delphi p>
- Частина 5 - розробка версії гри на JAVA для стільникових телефонів p>
p>
На сайті http://freeproject . narod.ru викладена інша версіяпрограмування ігор Oflameron на Visual Basic 6.0
На сайті http://play-man.narod.ru викладена версія гри Oflameron налисточку паперу. Досить просто роздрукувати ігровий бланком з документа
MS Word і грати. P>
Резюме (не повне):
- Асемблер - 8 років
- JAVA - 4 роки
- VB - 6 років
- PHP - 5 років p>
P.S. Не вважайте це опис оптимальним. Але це краще керівництво попрограмування гри в РуНет-е. p>
-----------------------< br>Маркер p>