} false;
} false;
}
· bool BlowUp (int i, Ball ListBall [20], int frog) - підриває кульки одного кольору викликається функцією PushBall.
Клас BallPath
Клас відповідає за ланцюжок кульок, за її рух. Саме тут прораховується крок, з яким рухається ланцюжок.
Є чотири основних поля:
· float ballX, ballY (початкові координати кульок в ланцюжки, залежать від рівня гравця);
· Player pl (відповідає за даного гравця);
· HGEG g (структура в якій зберігаються спрайт, звуки і т. д);
· Ball ListBall [20] (сама ланцюжок кульок);
Тут же можна розповісти про структуру Ball . Вона відповідає за кожну кульку окремо, за його властивості.
Поля структури:
· int col (колір);
· Bonus bonus (бонус);
· float x;
· float y;
· float prevx;
· float prevy;
· bool frogs (чи є даний кулька лягушкіним);
· bool hidden (чи з'явився цей кулька вже на екрані);
· bool explosition (підірваний Чи ця кулька);
Але повернемося до нашого до класу. У ньому є кілька дуже важливих функцій:
· void CheckColor (HGE * hge) - перевіряє чи немає у нас кульок таких кольорів, що в ланцюжку вже не набереться три або більше однакових кульки;
void BallPath :: CheckColor (HGE * hge)
{color=0; col=0; i=0; (color; color lt; 6; color ++)
{(i!=20 amp; amp; (ListBall [i]. col!=color || ListBall [i]. explosition == true))
{++;
} (i == 20)
{= 0 ;;
} (i; i lt; 20; i ++)
{(ListBall [i]. col == color) ++;
} (col gt;=3)
{= 0;=0 ;;
} if (col == 0)
{= 0;=0 ;;
}
{(i=0; i lt; 20; i ++)
{(ListBall [i]. explosition == true)
{[i]. explosition=false; [i]. col=color; ++; (hge, i, color); (col gt;=3)
{= 0 ;;
}
}
}=0;
}
}
}
· int CheckExpl (HGE * hge) - перевіряє ланцюжок на знищення всіх куль;
· void BallLoad (HGE * hge, int i, int a) - викликається, коли потрібні додаткові кульки;
· void TextureBallLoadRandom (HGE * hge) - встановлює рандомно колір кульок і завантажує їх текстури. Викликається при ініціалізації рівня;
void BallPath :: TextureBallLoadRandom (HGE * hge)
{(int i=0; i lt; 20; i ++)
{a=rand ()% 6; [i]. col=a; (a == 0). texBalls [i]=hge- gt; Texture_Load ( image baAccuracyBlue. png ); if (a == 1). texBalls [i]=hge- gt; Texture_Load ( image baAccuracyGreen. png ); if (a == 2). texBalls [i]=hge- gt; Texture_Load ( image baAccuracyPurple. png ); if (a == 3). texBalls [i]=hge- gt; Texture_Load ( image baAccuracyRed. png ); if (a == 4). texBalls [i]=hge- gt; Texture_Load ( image baAccuracyWhite. png ); if (a == 5). texBalls [i]=hge- gt; Texture_Load ( image baAccuracyYellow. png );
}
}
Наступні три функції непостредственно обчислюють нові координати кульок в ланцюжку в залежності від рівня:
· int CalculatePositionLev1 (float h);
· int CalculatePositionLev2 (float h);
· int CalculatePositionLev3 (float h);
клас Game
Цей клас здійснює взаємодію ланцюжка кульок і гравця, тобто класу BallPath і Player.
Два поля:
· Player player (відповідає за гравця);
· BallPath b (відповідає за ланцюжок кульок);
У цьому класі так само йде робота з графічним движком HGE, тому у функціях в основному йде робота з текстурами, спрайтами і т.д.
Основні функції:
· bool InitSimulation (HGE * hge) - ініціалізує спрайт і звуки у відповідності з рівнем гравця, так само ланцюжок ...