кульок і властивості кожної кульки окремо;
· void DoneSimulation (HGE * hge) - освобждает ресурси після завершення основного циклу;
· int UpdateSimulation (HGE * hge) - -обновляет координати кульок ланцюжки, час і відтінки кольору;
int Game :: UpdateSimulation (HGE * hge)
{seq [9]={0, 0, 1, 2, 2, 2, 1, 0, 0}; levelTopColors []={0xFF15092A, 0xFF6C6480, 0xFF89B9D0}; levelBtmColors []= {0xFF303E57, 0xFFAC7963, 0xFFCAD7DB}; h; float cellw=SCREEN_WIDTH/15; col1, col2; (b. speed == 0.0f) time=b. GetTime ();
{+=hge- gt; Timer_GetDelta () * b. speed; (time gt;=24.0f) time-=24.0f;
}. seq_id=(int) (time/3) ;. seq_residue=time/3-b. seq_id;=(time/400) ;. SetHWColor (levelTopColors [seq [3]]) ;. SetHWColor (levelTopColors [seq [4]]) ;. collevelTop=col2 * 3 + col1 * (1.0f - 3) ;. SetHWColor (levelBtmColors [seq [3]]) ;. SetHWColor (levelBtmColors [seq [4]]) ;. collevelBtm=col2 * 3 + col1 * (1.0f - 3) ;. colball. SetHWColor (0xFFEAE1BE) ;. colball=b. colball * (1); k; (b. pl. level == 1)
{= b. CalculatePositionLev1 (h);
} if (b. pl. level == 2)=b. CalculatePositionLev2 (h); if (b. Pl. Level == 3)=b. CalculatePositionLev3 (h); k;
}
· void RenderSimulation () - малює задані спрайт на отриманих координатах;
· void SaveToFile (char * name) - -зберігає поточного гравця і її час у файл рівня;
· void WinersFromFile () - зчитує кращих гравців рівнів з файлу;
· void CheckWin (HGE * hge) - перевіряє не порожня чи ланцюжок, якщо так то переходить на слеующій рівень;
void Game :: CheckWin (HGE * hge)
{i; (i=0; i lt; 20; i ++)
{(b. ListBall [i]. explosition == false);
} (i == 20)
{. pl. level ++; (hge);
}
}
клас hgeGUIMenuItem
Цей клас є класом-спадкоємцем віртуального класу hgeGUIObject бібліотеки HGE, тому методи у нього такі ж як і в стандартному класі:
· virtual voidRender () - малює наше меню;
· virtual voidUpdate (float dt) - оновлює анімацію на тлі меню;
· virtual voidEnter () - відповідає за те, коли меню повинно з'явиться на екрані;
· virtual voidLeave () - відповідає за те, коли меню повинно зникнути з екрану;
· virtual boolIsDone () - перевіряє чи закінчена анімація;
· virtual voidFocus (bool bFocused) - забезпечує роботу з елементами меню (кнопками);
· virtual voidMouseOver (bool bOver) - уведамляет коли курсор миші вийшов за межі вікна;
void hgeGUIMenuItem :: MouseOver (bool bOver)
{(bOver) gui- gt; SetFocus (id);
}
· virtual boolMouseLButton (bool bDown) - повідомляє про стан лівої кнопки миші;
hgeGUIMenuItem :: MouseLButton (bool bDown)
{(! bDown)
{= 4; true;
}
{ gt; Effect_Play (snd);=0; false;
}
}
· virtual boolKeyClick (int key, int chr) - управляти меню можна також за допомогою кнопак ENTER і SPACE;
клас Forminput
Цей клас так само є класом-спадкоємцем віртуального класу hgeGUIObject бібліотеки HGE, тому методи у нього такі ж як і в стандартному класі: Призначений для введення імені гравця.
А так само має кілька додаткових функцій.
· void setText (char * newText);
· char * getText () - для отримання введеного рядка;
У програмі імется ще кілька допоміжних функцій, що відповідають за кадр і його промальовування. У кожної сцени вона своі.FrameFunc1 () - кадр якого-небудь уровняRenderFunc1 () - його прорісовкаFrameFuncI () - кадр ІнструкцііRenderFuncI () - -прорісовка ІнструкцііFrameFunc () - кадр Головного менюRenderFunc () - його прорісовкаFrameFuncW () - кадр ПобедітеліRenderFuncW () -його прорісовкаRev () - для возрата в головне меню
У процесі гри користувач може насолодитися приємним музичним супроводом, у кожного рівня воно своє. Так само він завжди буде чути, виразний звук коли бере кульку, і коли кілька кульок знищуються. Це допоможе користувачеві зосередиться і розважить його.