ΠΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°, Π½ΠΎ Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.24.
ΠΠΈΡΡΠΈΠ½Π³ 11.24/// <summary>
/// ΠΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°
/// </summary>
struct tomato {
public Rectangle rectangle;
public bool visible;
}
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠΌ ΠΎΠ²ΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΡΠ΅Π·Π½ΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΠ³ΡΠΎΠΊΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΊΠΈ.
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ²
ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.25.
ΠΠΈΡΡΠΈΠ½Π³ 11.25/// <summary>
/// Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°ΠΌΠΈ.
/// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΈΠ³ΡΡ
/// </summary>
private int tomatoSpacing = 4;
/// <summary>
/// ΠΡΡΠΎΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ
/// ΠΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠ³ΡΡ
/// ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°
/// </summary>
private int tomatoDrawHeight = 4;
/// <summary>
/// ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅.
/// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΈΠ³ΡΡ
/// ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ initialiseTomatoes.
/// </summary>
private int noOfTomatoes;
/// <summary>
/// ΠΠΎΠ·ΠΈΡΠΈΠΈ Π²ΡΠ΅Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅
/// </summary>
private tomato[] tomatoes;
ΠΡΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠΈ ΠΈΠ³ΡΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈ Π½ΠΈΠΆΠ΅, Π·Π°ΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ tomatoDrawHeight Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ initialiseTomatos, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ² ΠΈ ΡΠΊΡΠ°Π½Π°. ΠΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.26.
ΠΠΈΡΡΠΈΠ½Π³ 11.26/// <summary>
/// ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ΅Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ²
/// </summary>
private void initialiseTomatoes() {
noOfTomatoes =
(this.ClientSize.Width - tomatoSpacing) /
(tomatoImage.Width + tomatoSpacing);
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ²
tomatoes = new tomato[noOfTomatoes];
// ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° x ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°
int tomatoX = tomatoSpacing / 2;
for (int i = 0; i < tomatoes.Length; i++) {
tomatoes[i].rectangle =
new Rectangle(tomatoX, tomatoDrawHeight,
tomatoImage.Width, tomatoImage.Height);
tomatoX = tomatoX + tomatoImage.Width + tomatoSpacing;
}
}
ΠΡΠ·ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠΎΡΠΌΡ. ΠΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ ΠΈ Π·Π°Π΄Π°Π΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ Π² ΠΎΠ΄ΠΈΠ½ ΡΡΠ΄. ΠΠΎΠ΄, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³ 11.27.
ΠΠΈΡΡΠΈΠ½Π³ 11.27/// <summary>
/// ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΄Π° ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ².
/// </summary>
private void placeTomatoes() {
for (int i = 0; i < tomatoes.Length; i++) {
tomatoes[i].rectangle.Y = tomatoDrawHeight;
tomatoes[i].visible = true;
}
}
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΈΠ³ΡΡ, Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΡΠΎΠΌΠ°ΡΠΎΠ². ΠΠ΅ΡΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π²ΡΡΠΎΡΡ Ρ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΌΠ°ΡΠΎΠ² Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ. ΠΡΠ·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠΎΡΠΌΡ.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π²ΡΠ΅Ρ ΡΠΎΠΌΠ°ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ. ΠΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½. ΠΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.28, Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ Form1_Paint.
ΠΠΈΡΡΠΈΠ½Π³ 11.28for (int i = 0; i < tomatoes.Length; i++) {
if (tomatoes[i].visible) {
g.DrawImage(tomatoImage, tomatoes[i].rectangle.X, tomatoes[i].rectangle.Y);
}
}
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΠΌΠ°ΡΡ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΠΌΠ°ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½Π΅Π΅, Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π²ΡΡΠΎΡΡ Π±Π°ΡΠΎΠ½Π° ΡΡΡΡ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΈΠ³ΡΠΎΠΊ ΠΌΠΎΠ³ ΡΡΠ°Π·Ρ ΠΈΠ³ΡΠ°ΡΡ Π² ΠΈΠ³ΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.29.
ΠΠΈΡΡΠΈΠ½Π³ 11.29breadRectangle = new RectanglΠ΅(
(this.ClientSize.Width - breadImage.Width) / 2,
this.ClientSize.Height β breadImage.Height,
breadImage.Width, breadImage.Height);
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ³ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 11.7
Π ΠΈΡ. 11.7. ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΈΠ³ΡΡ
Π£Π½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΌΠ°ΡΠΎΠ²
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°ΠΌΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π‘ΠΈΡΡΠ°ΡΠΈΡ Π½Π°Π΄ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠ΄Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄ updatePosition, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.30.
ΠΠΈΡΡΠΈΠ½Π³ 11.30// Π£Π½ΠΈΡΡΠΎΠΆΠ°Π΅ΠΌ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΡ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ ΡΡΡΠΎΠΌ
for (int i = 0; i < tomatoes.Length; i++) {
if (!tomatoes[i].visible) {
continue;
}
if (cheeseRectangle.IntersectsWith(tomatoes[i].rectangle)) {
// ΠΏΡΡΡΠ΅ΠΌ ΡΠΎΠΌΠ°Ρ
tomatoes[i].visible = false;
// ΠΎΡΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π²Π½ΠΈΠ·
goingDown = true;
// ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ
break;
}
}
ΠΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΡ Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π²Π²Π΅ΡΡ . ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ° ΠΈ ΠΊΡΡΠΊΠ° ΡΡΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° IntersectsWith. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΡΡΡΠ° Ρ ΡΠΎΠΌΠ°ΡΠΎΠΌ, ΡΠΎ ΡΠΎΠΌΠ°Ρ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ VisiblΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False. ΠΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΊΡΠ°Π½Π° ΡΡΠΎΡ ΡΠΎΠΌΠ°Ρ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. Π‘ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠΊΠ°ΠΊΠΈΠ²Π°ΡΡ ΠΎΡ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°, ΠΊΠ°ΠΊ ΠΎΡ ΡΡΠ΅Π½ΠΎΠΊ ΠΈΠ»ΠΈ ΠΎΡ Π±Π°ΡΠΎΠ½Π°.
Π‘ΡΠ΅Ρ ΠΈΠ³ΡΡ
ΠΡΠ°ΠΊ, ΡΡΠΎ ΡΠΆΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΈΠ³ΡΡ. ΠΠΎ ΠΏΠΎΠΊΠ° Π΅ΠΉ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ³ΡΡ β Π½Π΅ ΡΠ°ΠΌΠ°Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠΊΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° DrawString. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈΡΡ, ΠΊΠΈΡΡΡ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΡΠ°ΡΡ ΡΡΠΎΠΈΡ ΡΠΎ ΡΡΠΈΡΡΠ°. ΠΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠΎΡΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.31.
ΠΠΈΡΡΠΈΠ½Π³ 11.31/// <summary>
/// Π¨ΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ΅ΡΠ°
/// </summary>
private Font messageFont = null;
// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° Π½Π°Π±ΡΠ°Π½Π½ΡΡ ΠΎΡΠΊΠΎΠ²
messageFont = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Regular);
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΠΊΡΡ. ΠΡΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ 15 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅ΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ³ΡΡ, ΡΡΠΎΠ±Ρ Π΄Π²ΠΈΠ³Π°ΡΡΠΈΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π²ΡΡΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΎΡΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.32.
ΠΠΈΡΡΠΈΠ½Π³ 11.32/// <summary>
/// ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΡΠ΅Ρ ΠΈΠ³ΡΡ
/// </summary>
private Rectangle messageRectangle;
/// <summary>
/// ΠΡΡΠΎΡΠ° ΠΏΠ°Π½Π΅Π»ΠΈ Π΄Π»Ρ ΡΡΠ΅ΡΠ°.
/// </summary>
private int scoreHeight = 15;
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π΄Π»Ρ ΡΡΠ΅ΡΠ°
messageRectangle = new RectanglΠ΅(0, 0, this.ClientSize.Width, scoreHeight);
ΠΡΠ»ΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π» Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ°, ΡΠΎ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π·Π°ΡΡΡΡ ΠΏΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Π·Π°Π΄Π°Π½Ρ ΡΡΠΈΡΡ ΠΈ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠ° ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΠΊΠΈΡΡΠΈ. ΠΡΠ±ΠΈΡΠ°Ρ ΡΠΈΠΏ ΠΊΠΈΡΡΠΈ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ ΡΠ²Π΅Ρ ΠΈ ΡΠ·ΠΎΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.33.
ΠΠΈΡΡΠΈΠ½Π³ 11.33/// <summary>
/// ΠΠΈΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
/// </summary>
private SolidBrush messageBrush;
// ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΡΠ°ΡΠ½ΡΡ ΠΊΠΈΡΡΡ
messageBrush = new SolidBrush(Color.Red);
Π’Π΅ΠΊΡΡ ΡΡΠ΅ΡΠ° ΠΈΠ³ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. Π§ΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ DrawString Π² ΡΠΎΠ±ΡΡΠΈΠΈ Form1_Paint, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.34.
ΠΠΈΡΡΠΈΠ½Π³ 11.34/// <summary>
/// Π‘ΡΡΠΎΠΊΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
/// </summary>
private string messageString = "ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π‘ΡΠ°ΡΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΈΠ³ΡΡ";
g.DrawString(messageString, messageFont, messageBrush, messageRectangle);
Π‘ΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ messageString ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠΊΡΠ°Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ.
ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΠΈΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠΎΠΌΠ°ΡΠΎΠ² Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ updatePosition. ΠΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.35.
ΠΠΈΡΡΠΈΠ½Π³ 11.35/// <summary>
/// Π‘ΡΠ΅Ρ Π² ΠΈΠ³ΡΠ΅
/// </summary>
private int scoreValue = 0;