/// Π‘ΡΠ΅Ρ Π² ΠΈΠ³ΡΠ΅
/// </summary>
private int scoreValue = 0;
private void updatePositions() {
if (cheeseRectangle.IntersectsWith(tomatoes[i].rectangle)) {
// ΠΏΡΡΡΠ΅ΠΌ ΡΠΎΠΌΠ°Ρ
tomatoes[i].visible = false;
// ΠΎΡΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π²Π½ΠΈΠ·
goingDown = true;
// ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΡΠ΅Ρ
scoreValue = scoreValue + 10;
messageString = "Π‘ΡΠ΅Ρ: " + scoreValue;
break;
}
}
ΠΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΎΠΌΠ°Ρ Π½Π°ΡΠΈΡΠ»ΡΠ΅ΡΡΡ 10 ΠΎΡΠΊΠΎΠ². ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ²ΡΠΊΠΎΠ²ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ
ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΈΠ³ΡΡ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° .NET Compact Framework ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π²ΡΠΊΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Platform Invoke (P/Invoke). Π Π³Π»Π°Π²Π΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ Π²ΡΠ·ΠΎΠ²Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ Windows API, ΡΡΠ° ΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
ΠΠ»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠΎΠΈΡΡ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ°ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ ΡΠ°ΠΌ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π³Π΄Π΅-ΡΠΎ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠΎΠ². ΠΡΠΆΠ½ΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Bouncer Π² ΠΎΠΊΠ½Π΅ Solution Explorer ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ AddβΊNew Item... Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Class ΠΈ Π·Π°Π΄Π°ΡΡ ΠΈΠΌΡ Sound.cs. ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Add Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ»Π°ΡΡ Sound Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Sound, ΡΠΈΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ Π·Π²ΡΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π³ΡΠΎΠΌΠΊΠΎΡΡΡ Π·Π²ΡΠΊΠ°.
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° Sound.cs Π½Π°Π΄ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.36.
ΠΠΈΡΡΠΈΠ½Π³ 11.36using System.Runtime.InteropServices;
using System.IO;
ΠΠ°Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎ Π·Π²ΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΠΎ Ρ ΡΠ°Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ Π°ΡΠ΄ΠΈΠΎΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠΌΡ Π±Π»ΠΎΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΏΠΎΡΠΎΠ±Π½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π·Π²ΡΠΊΠΈ. Π ΠΊΠ»Π°ΡΡΠ΅ Sound Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.37.
ΠΠΈΡΡΠΈΠ½Π³ 11.37/// <summary>
/// ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π·Π²ΡΠΊΠ΅
/// </summary>
private byte[] soundBytes;
ΠΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ Π΅Π³ΠΎ. ΠΠ°ΡΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, Π²Π΅Π΄Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π²ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½.
ΠΠΎΠ΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.38.
ΠΠΈΡΡΠΈΠ½Π³ 11.38/// <summary>
/// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° sound ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎ Π·Π²ΡΠΊΠ΅
/// </summary>
/// <param name="soundStream">ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π·Π²ΡΠΊΠ°</param>
public Sound(Stream soundStream) {
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
soundBytes = new byte[soundStream.Length];
// ΡΠΈΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ°
soundStream.Read(soundBytes, 0, (int)soundStream.Length);
}
ΠΠΎΡΠΎΠΊ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Length, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ΅ΡΠΎΠ΄ Read ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Π±Π°ΠΉΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠ°ΠΊ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ click.wav ΠΈ burp.wav ΠΈ Π΄Π»Ρ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Build Action Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Embedded Resources. Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π²ΡΠΊΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, ΡΡΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.39.
ΠΠΈΡΡΠΈΠ½Π³ 11.39/// <summary>
/// ΠΠ²ΡΠΊ, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ Π±Π°ΡΠΎΠ½ΠΎΠΌ Ρ Π»Π΅Π±Π°
/// </summary>
private Sound batHitSound;
/// <summary>
/// ΠΠ²ΡΠΊ, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠΌ
/// </summary>
private Sound tomatoHitSound;
// ΠΠΎΠ»ΡΡΠΈΠΌ Π·Π²ΡΠΊ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ Π±Π°ΡΠΎΠ½ΠΎΠΌ Ρ Π»Π΅Π±Π°
batHitSound = new Sound
(execAssem.GetManifestResourceStream(@"Bouncer.click.wav"));
// ΠΠΎΠ»ΡΡΠΈΠΌ Π·Π²ΡΠΊ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠΌ
tomatoHitSound = new Sound
(execAssem.GetManifestResourceStream(@"Bouncer.burp.wav"));
ΠΠ»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠ° Π² ΠΊΠ»Π°ΡΡ Sound Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Play, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.40.
ΠΠΈΡΡΠΈΠ½Π³ 11.40/// <summary>
/// Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π²ΡΠΊΠΎΠΌ Π² ΠΈΠ³ΡΠ΅ (ΠΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ)
/// </summary>
public static bool Enabled = true;
/// <summary>
/// ΠΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅ΠΌ Π·Π²ΡΠΊ
/// </summary>
public void Play() {
if (Sound.Enabled) {
WCE_PlaySoundBytes(soundBytes, IntPtr.Zero,
(int)(Flags.SND_ASYNC | Flags.SND_MEMORY));
}
}
ΠΠ΅ΡΠΎΠ΄ Play ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Enabled. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π·Π²ΡΠΊ Π² ΠΈΠ³ΡΠ΅. ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π²ΡΠΊΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Windows API WCE_PlaySoundBytes, ΡΡΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.41.
ΠΠΈΡΡΠΈΠ½Π³ 11.41private enum Flags {
SND_SYNC = 0x0000,
SND_ASYNC = 0x0001,
SND_NODEFAULT = 0x0002,
SND_MEMORY = 0x0004,
SND_LOOP = 0x0008,
SND_NOSTOP = 0x0010,
SND_NOWAIT = 0x00002000,
SND_ALIAS = 0x00010000,
SND_ALIASID = 0x00110000,
SND_FILENAME = 0x00020000,
SND_RESOURCE = 0x00040004
}
/// <summary>
/// Π€ΡΠ½ΠΊΡΠΈΡ Windows API Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠ°.
/// </summary>
/// <param name="szSound">ΠΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ /// </param>
/// <param name="hMod">ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌΡ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ
/// ΡΠ΅ΡΡΡΡ</param>
/// <param name="flags">Π€Π»Π°Π³ΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠΎΠΌ</param>
/// <returns></returns>
[DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
private extern static int WCE_PlaySoundBytes( byte[] szSound,
IntPtr hMod, int flags);
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Sound, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π·Π²ΡΠΊ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΡΡΠ° Ρ Π±Π°ΡΠΎΠ½ΠΎΠΌ Ρ Π»Π΅Π±Π°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.42.
ΠΠΈΡΡΠΈΠ½Π³ 11.42// Π΅ΡΠ»ΠΈ ΡΡΡ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ Π²Π½ΠΈΠ·
if (cheeseRectangle.IntersectsWith(breadRectangle)) {
// ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅
// Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΡΠ΄Π°Ρ
batHitSound.Play();
}
ΠΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π·Π²ΡΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π²ΡΠΊ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠ°ΠΌΠΈ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.43.
ΠΠΈΡΡΠΈΠ½Π³ 11.43if (cheeseRectangle.IntersectsWith(tomatoes[i].rectangle)) {
// Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π·Π²ΡΠΊ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΠΎΠΌ
tomatoHitSound.Play();
}
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
ΠΠΎ ΠΈΠ³ΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ.
β‘ Π Π΅ΠΆΠΈΠΌ Β«attractΒ», Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ.
β‘ ΠΠΎΡΠ΅ΡΡ ΠΆΠΈΠ·Π½ΠΈ, Π΅ΡΠ»ΠΈ ΡΡΡ ΡΠ΄Π°ΡΠΈΠ»ΡΡ ΠΎ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΡΠΊΡΠ°Π½Π°.
β‘ ΠΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΡΠΎΠΌΠ°ΡΠΎΠ² ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΡΡΡ Π½ΠΈΠΆΠ΅, ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΠ³ΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·ΡΠ°ΡΡΠΈ.
β‘ ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΈΠ³ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°Π΄ΠΎ Π²Π²Π΅ΡΡΠΈ Π±ΡΠ»Π΅Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ gameLive, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π΅Π΄Π΅Ρ ΠΈΠ³ΡΡ. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π²Π½ΠΎ False, ΡΠΎ ΡΡΡ Π±ΡΠ΄Π΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ³ΡΠΎΠ²ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΈΠ³ΡΡ. ΠΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 11.44.
ΠΠΈΡΡΠΈΠ½Π³ 11.44/// <summary>
/// True, Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠ° Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅.
/// </summary>
private bool gameLive = false;
/// <summary>
/// Π§ΠΈΡΠ»ΠΎ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΆΠΈΠ·Π½Π΅ΠΉ.
/// </summary>
private int livesLeft;
/// <summary>
/// Π§ΠΈΡΠ»ΠΎ ΠΆΠΈΠ·Π½Π΅ΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠ°.
/// </summary>
private int startLives = 3;
private void startGame() {
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΠΆΠΈΠ·Π½Π΅ΠΉ, ΡΡΠ΅Ρ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
livesLeft = startLives;
scoreValue = 0;
messageString = "Π‘ΡΠ΅Ρ: 0 ΠΠΈΠ·Π½Ρ: " + livesLeft;
// Π Π°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ ΠΏΠΎΠΌΠΈΠ΄ΠΎΡΡ Π½Π°Π²Π΅ΡΡ Ρ ΡΠΊΡΠ°Π½Π°
tomatoDrawHeight = tomatoLevelStartHeight;
placeTomatoes();
// ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ Π±Π°ΡΠΎΠ½ Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°
breadRectangle.X = (this.ClientSize.Width - breadRectangle.Width) / 2;
breadRectangle.Y = this.ClientSize.Height / 2;
// ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΡΡ Π½Π°Π΄ Π±Π°ΡΠΎΠ½ΠΎΠΌ Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°
cheeseRectangle.X = (this.ClientSize.Width - cheeseRectanglΠ΅.Width) / 2;
cheeseRectangle.Y = breadRectangle.Y β cheeseRectangle.Height;
// Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ