Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΆΠ°Π²Π° ΠΈΠ³Ρ€Ρƒ

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ java-ΠΈΠ³Ρ€Ρƒ для сотового Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°

ПослС этого приступим ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ двумя ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ³Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этой сСрии, состоящСй ΠΈΠ· Π΄Π²ΡƒΡ… статСй. НачнСм с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ простой Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹, Π° послС приступим ΠΊ ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ слоТной Π·Π°Π΄Π°Ρ‡Π΅ β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ³Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ возмоТности ΠΈΠ³Ρ€Ρ‹ ΠΏΠΎ сСти.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих ΠΈΠ³Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описана нСпосрСдствСнно игровая Ρ‡Π°ΡΡ‚ΡŒ (Ρ‚.Π΅. игровая Π»ΠΎΠ³ΠΈΠΊΠ°), Π±ΡƒΠ΄ΡƒΡ‚ приняты Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дизайнСрскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈ Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ погрузимся Π² Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ рассмотрСниС всСх подробностСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этих ΠΈΠ³Ρ€ Π½Π° Java.
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ
ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь: http://developer.java.sun.com/developer/releases/wireless_gaming_blueprints

Π’ΠΈΠΏΡ‹ ΠΈΠ³Ρ€
Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ… людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΠ³Ρ€Π°Π»ΠΈ Π² ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ складываСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ³Ρ€. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ основныС:
β€’ БтратСгичСскиС ΠΈΠ³Ρ€Ρ‹ (Mine Sweeper, Reversi, Bejeweled).
β€’ ΠšΠ°Ρ€Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ (Solitaire, Black Jack, Poker).
β€’ Π”Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Π΅ (2D) Π°Ρ€ΠΊΠ°Π΄Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ (Galaxian, PacMan, Defender, Asteroids).
β€’ Π’Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Π΅ (3D) Π°Ρ€ΠΊΠ°Π΄Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ (Doom, Quake, Tony Hawk Pro Skater).
ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ 3D-ΠΈΠ³Ρ€Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСмныС рСсурсы ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда слишком ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Π² ΠΏΠ»Π°Π½Π΅ доступной памяти ΠΈ скорости процСссора, Ρ‚Π°ΠΊ ΠΈ Π² графичСских возмоТностях. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нашС прСдприятиС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ вСсСлоС ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, остановимся Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… (2D) Π°Ρ€ΠΊΠ°Π΄Π½Ρ‹Ρ… ΠΈΠ³Ρ€.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ трудности
Π’ список основных трудностСй, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ³Ρ€ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств, входят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅: Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ рСсурсы устройств, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π½Π° этих устройствах.

АппаратныС рСсурсы
ΠœΠ°Π»Ρ‹Π΅ устройства ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ достаточного количСства статичСской ΠΈ динамичСской памяти. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, статичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² сСбС Ρ„Π°ΠΉΠ»Ρ‹ классов вашСй ΠΈΠ³Ρ€Ρ‹ (ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² JAR-Π°Ρ€Ρ…ΠΈΠ², СстСствСнно), Π° количСство динамичСской памяти опрСдСляСт, сколько памяти Π±ΡƒΠ΄Π΅Ρ‚ доступно вашСй ΠΈΠ³Ρ€Π΅ Π²ΠΎ врСмя Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‡Π΅Π½ΡŒ остороТно ΠΈ Π±Π΅Ρ€Π΅ΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ использованию ΠΊΠ°ΠΊ статичСской, Ρ‚Π°ΠΊ ΠΈ динамичСской памяти ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ свой шаг Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ любоС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Π·Π° собой ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Π»ΠΈΠΌΠΈΡ‚Π° использования памяти.
JAR-Ρ„Π°ΠΉΠ», содСрТащий Π²Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно ΠΌΠ°Π» (Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 10 Π΄ΠΎ 40 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ³Ρ€Ρƒ), Π° количСство потрСбляСмой памяти Π²ΠΎ врСмя выполнСния ΠΈΠ³Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ этим руководящим ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ, слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ количСство создаваСмых Π²Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ частоту ΠΈΡ… создания. MIDP Wireless Toolkit 2.0 (WTK) β€” это эмулятор устройств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ установкС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти. Однако ΠΏΡ€ΠΈΠΌΠΈΡ‚Π΅ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ MIDP ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π· вашСго Π½Π° Ρ‚ΠΎ согласия. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ смоТСтС Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ памяти, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ вашСй ΠΈΠ³Ρ€ΠΎΠΉ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слишком ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΌΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π³ΠΈΠ³Π°Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Π²Π°ΡˆΠΈΡ… дСсктопах ΠΈΠ»ΠΈ PDA. Частота Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСссоров ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ 15-20 MHz. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… графичСских ускоритСлСй. ΠœΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ процСссоры ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСдлСнная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вас Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΈ Π²ΡΠ΅Ρ€ΡŒΠ΅Π· ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ своС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π° Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ большС всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ прСдупрСТдСния всякого Ρ€ΠΎΠ΄Π° Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² вашСй ΠΈΠ³Ρ€Π΅. ВмСсто этого Π»ΡƒΡ‡ΡˆΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ (это ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ³Ρ€Ρ‹): сначала сдСлайтС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, послС сдСлайтС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π° ΡƒΠΆΠ΅ послС этого сдСлайтС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ быстро.
Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ всСгда. НапримСр, Ссли ваша ΠΈΠ³Ρ€Π° β€” полноцСнная 3D-Π°Ρ€ΠΊΠ°Π΄Π° с мноТСством ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠ², ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ тысячами ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ°, Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстро Π½Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… устройствах, потрСбуСтся гигантский Ρ‚Ρ€ΡƒΠ΄ ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (хотя JSR 184 позволяСт Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ посрСдством использования Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… возмоТностСй устройств). Π§Ρ‚ΠΎ касаСтся 2D-ΠΈΠ³Ρ€, Ρ‚ΠΎ здСсь Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС ΠΎ стратСгии пСрСрисовки. (ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Ссли Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ смоТСтС произвСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ·ΠΆΠ΅.) Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ дСйствия ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ пСрСрисовку для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ°. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ вашСй ΠΈΠ³Ρ€Ρ‹ ΠΈ свободно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ для сСбя, ΠΊΠ°ΠΊΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (графичСскиС, СстСствСнно) Π²Ρ‹ смоТСтС привнСсти ΠΏΠΎΠ·ΠΆΠ΅; Π½ΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ Π·Π°Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ сСбС Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ дСталями ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этих ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π° часто оказываСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТным процСссом, Ρ‡Π΅ΠΌ нСпосрСдствСнноС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния. ИмСнно ΠΏΠΎ этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΡ‹ раздСляСм сСкции ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΎΠ±Π΅ΠΈΡ… ΠΈΠ· рассматриваСмых Π½Π°ΠΌΠΈ ΠΈΠ³Ρ€: сначала ΠΌΡ‹ опрСдСляСм, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ части нашСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ явныС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ быстрый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π£Π΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
Π˜Π³Ρ€Π°Ρ‚ΡŒ Π² ΠΈΠ³Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ интСрСсно, ΠΈΠ½Π°Ρ‡Π΅ Π±Ρ‹ люди просто Π² Π½ΠΈΡ… Π½Π΅ ΠΈΠ³Ρ€Π°Π»ΠΈ. Π’ случаС с ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ тСкстовым Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ всСгда Ρ‚Π°ΠΊ ΡƒΠΆ интСрСсны, ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ этих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²Π΅ΡˆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ… использования. БовсСм ΠΈΠ½Π°Ρ‡Π΅ обстоит Π΄Π΅Π»ΠΎ с ΠΈΠ³Ρ€Π°ΠΌΠΈ. Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Π²Ρ‹Π³ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ своС врСмя ΠΈ Π½Π΅Ρ€Π²Ρ‹ Π½Π° ΠΈΠ³Ρ€Ρƒ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° Π½Π΅ интСрСсна ΠΈ Π½Π΅ доставляСт ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΈΠ³Ρ€Ρ‹ β€” Π±Ρ‹Ρ‚ΡŒ интСрСсной ΠΈ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. А Π² ситуации с сотовыми Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌΠΈ сущСствуСт ряд Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ вашСй ΠΈΠ³Ρ€Π΅.
Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ слишком ΠΌΠ°Π»Ρ‹ΠΉ экран, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ достаточно слоТно ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΎΡΡŒ. Клавиши слишком ΠΌΠ°Π»Ρ‹ ΠΈ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π² использовании. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ Π² ΠΈΠ³Ρ€Π°Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ контСксту Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ дСсятой Π΄ΠΎΠ»ΠΈ сСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ³Ρ€ΠΎΠΊ смог ΠΏΡ€Π΅ΡƒΡΠΏΠ΅Ρ‚ΡŒ Π² ΠΈΠ³Ρ€Π΅. Π—Π²ΡƒΠΊΠΎΠ²Ρ‹Π΅ возмоТности Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹: Π·Π²ΡƒΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ вовсС Π»ΠΈΠ±ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚, Π½ΠΎ всСго лишь Π² Π²ΠΈΠ΄Π΅ нСбольшого Π½Π°Π±ΠΎΡ€Π° Π±ΠΈΠΏ-сигналов ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Π’ любом случаС этого нСдостаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ своСй ΠΈΠ³Ρ€Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠ³Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ достойный внСшний Π²ΠΈΠ΄ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ экраны (сцСны Π² ΠΈΠ³Ρ€Π΅) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π·Π° счСт использования постоянной Π³Π°ΠΌΠΌΡ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ², Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠ·ΠΎΡ€ΠΎΠ², ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π²ΠΎ врСмя ΠΈΠ³Ρ€Ρ‹, Π½Π΅ считая критичСских (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ‘HTTP 404: not found’). ГрафичСскоС ΠΈ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π² ΠΈΠ΄Π΅Π°Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ людьми с худоТСствСнными ΠΈ эстСтичСскими наклонностями.

ΠžΡ‚Π»Π°Π΄ΠΊΠ°
ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π° самих ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ. Π›ΡƒΡ‡ΡˆΠ΅ всСго Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ эмулятором, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, WTK, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эмуляторы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ консоли, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° смоТСтС Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сообщСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° System.out.println(). Π’Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆ ΠΏΡ€ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ опрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² toString() для всСх Π²Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ состоянии любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ смоТСтС просто Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π΅Π΅ Π² Ρ€Π΅Π»ΠΈΠ· ΠΈΠ³Ρ€Ρ‹. ΠŸΡ€ΠΈ этом Π²Ρ‹ оставляСтС Π·Π° собой Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнным ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ вашСй любимой срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE) Π½Π° Java, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Π·Π° собой мноТСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Пока для нас Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ println().
Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ β€” дСмонстрационныС Ρ€Π΅ΠΆΠΈΠΌΡ‹ Π² вашСй ΠΈΠ³Ρ€Π΅. ИдСально Π΄Π΅ΠΌΠΎ-Ρ€Π΅ΠΆΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π² дСмонстрационный процСсс ΠΈΠ³Ρ€Ρ‹ всю Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½Π° Ρ‡Ρ‚ΠΎ способна ваша ΠΈΠ³Ρ€Π°, Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅ Ρ€ΡƒΡ…Π½Π΅Ρ‚ Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… ситуаций. Π­Ρ‚ΠΎ сдСлаСт процСсс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ошибок ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΈΠΌ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ часами ΡΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° клавиши, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΠ³Ρ€Ρ‹, Π²Ρ‹ просто сидитС ΠΈ смотритС, ΠΊΠ°ΠΊ ΠΈΠ³Ρ€Π° Π΄Π΅Π»Π°Π΅Ρ‚ всю ΡΠ°ΠΌΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ (для выполнСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π°, собствСнно, ΠΈ Π±Ρ‹Π»Π° написана) Π·Π° вас. ВмСстС с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сообщСний Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ инструмСнт.

Автономный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠ³Ρ€Ρ‹
ОписаниС

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΎΡ‡Π΅Π½ΡŒ распространСнная вСрсия Π°Ρ€ΠΊΠ°Π΄Ρ‹ Ρ‚ΠΈΠΏΠ° Π°Ρ€ΠΊΠ°Π½ΠΎΠΈΠ΄. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ³Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, доска ΠΈ ΡˆΠ°Ρ€ΠΈΠΊ. Π˜Π³Ρ€ΠΎΠΊ управляСт доской, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ. Π¨Π°Ρ€ΠΈΠΊ Π»Π΅Ρ‚Π°Π΅Ρ‚ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΈΠ³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π²ΡƒΡ… Ρ†Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ стСнками слСва, справа ΠΈ свСрху. НиТняя стСнка, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдвигаСтся доска, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ° Π²Π½ΠΈΠ·, ΠΈΠ³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ доску ΠΊ Ρ‚ΠΎΠΌΡƒ мСсту, ΠΊΡƒΠ΄Π° собираСтся ΡƒΠΏΠ°ΡΡ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΎΡ‚Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΡΡŒ ΠΎΡ‚ доски, ΠΏΠΎΠ»Π΅Ρ‚ΠΈΡ‚ ΠΏΠΎ рассчитываСмой Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π˜Π³Ρ€Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ находится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Π±Π»ΠΎΠΊΠΎΠ². НСкоторыС ΠΈΠ· этих Π±Π»ΠΎΠΊΠΎΠ² сразу Ρ€Π°ΡΠΏΠ°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π² Π½ΠΈΡ… ΡˆΠ°Ρ€ΠΈΠΊΠ°, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Π΄ΡƒΡ‚ сСбя Π±ΠΎΠ»Π΅Π΅ слоТно. Π˜Π³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½, воспользовавшись ΡˆΠ°Ρ€ΠΈΠΊΠΎΠΌ, ΡΠ±ΠΈΡ‚ΡŒ всС сбиваСмыС Π±Π»ΠΎΠΊΠΈ Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ. Если ΡˆΠ°Ρ€ΠΈΠΊ ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ экрана, ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ Π½Π΅ успСваСт ΠΎΡ‚Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ доски, Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠΊ тСряСт ΠΎΠ΄Π½Ρƒ Тизнь. ΠŸΡ€ΠΈ стартС ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΆΠΈΠ·Π½ΠΈ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ истратил всС свои ΠΆΠΈΠ·Π½ΠΈ, ΠΈΠ³Ρ€Π° заканчиваСтся, ΠΈ ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚. Π’ΠΎ врСмя ΠΈΠ³Ρ€Ρ‹ Π½Π° экранС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Π΅: количСство ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΆΠΈΠ·Π½Π΅ΠΉ, количСство Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡ΠΊΠΎΠ² ΠΈ Ρ€Π΅ΠΊΠΎΡ€Π΄Π½ΠΎΠ΅ количСство ΠΎΡ‡ΠΊΠΎΠ².
ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простая ΠΈΠ³Ρ€Π°, ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΡ€Π΄Π½ΠΎΠ΅ количСство ΠΎΡ‡ΠΊΠΎΠ² постоянно, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π˜Π³Ρ€Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТит экран-заставку, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ ΠΈ имя Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€Π°. Помимо этого, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ экран, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выводится ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ΅. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ дСмонстрационный Ρ€Π΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ доска контролируСтся самой ΠΈΠ³Ρ€ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΊΠ°ΠΊ для дСмонстрационных Ρ†Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ для тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
Из ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ описания ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько сущностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ³Ρ€Ρ‹. Π­Ρ‚ΠΎ ΡˆΠ°Ρ€ΠΈΠΊ, доска ΠΈ Π±Π»ΠΎΠΊΠΈ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ всС эти сущности ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства: ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·ΠΌΠ΅Ρ€, графичСскоС прСдставлСниС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ столкновСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ (сущностями). ВсС это свойствСнно спрайтам (sprite). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² MIDP 1.0 Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со спрайтами (Π² MIDP 2.0 ΠΎΠ½Π° ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ), Π½Π°ΠΌ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ всС самим. Π­Ρ‚ΠΎ Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нСобходимая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… спрайтов ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»Π°.
Если Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈ ΠΈ доска ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΏΠ»Π°Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ΠΈ схоТи, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Π²Π΅ сущности Π² ΠΎΠ΄Π½ΠΎΠΌ классС.
Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ модСль опрСдСлСния столкновСний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ упрощСнчСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². Π’ этом случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ: ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΠΉ X, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΠΉ Y, Π° Ρ‚Π°ΠΊΠΆΠ΅ высотой ΠΈ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ. Для доски ΠΈ Π±Π»ΠΎΠΊΠΎΠ² эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΈΡ… фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€. Однако для ΡˆΠ°Ρ€ΠΈΠΊΠ° Ρ‚Π°ΠΊΠΎΠ΅ прСдставлСниС β€” достаточно Π³Ρ€ΡƒΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ повСдСния ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ прСдставлСнии, Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 75% Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€Π° ΡˆΠ°Ρ€ΠΈΠΊΠ° Π² качСствС ΠΎΠ΄Π½ΠΎΠΉ стороны Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°). По ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΠΌΠΈΡΡ, Ссли ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‚.Π΅. Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°.
Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ нашСй ΠΈΠ³Ρ€Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄, ΠΌΡ‹ нарисовали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² псСвдотрСхмСрной Ρ„ΠΎΡ€ΠΌΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ отбрасываСт Ρ‚Π΅Π½ΡŒ, которая пСрСдвигаСтся вмСстС со своим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ эффСкту освСщСния. Π’Π΅Ρ€Ρ…Π½ΠΈΠ΅ края, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ свСтит источник свСта, Π±ΠΎΠ»Π΅Π΅ свСтлыС, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½ΠΈΠΆΠ½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Ρ‚Π΅ΠΌΠ½Π΅Π½Ρ‹.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° стадии проСктирования Π²Π²Π΅Π΄Π΅ΠΌ Π² Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ сущности (это ΠΎΡ‡Π΅Π½ΡŒ упростит Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹). ΠŸΠ΅Ρ€Π²Π°Ρ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Π½Π° всСх уровнях. НазовСм Π΅Π΅ ‘списком Π±Π»ΠΎΠΊΠΎΠ²’ (brick list). Π­Ρ‚ΠΎΡ‚ список прСдставляСт собой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ этого ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ видимости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². НапримСр, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΌΡ‹ просто Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ списку ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всС Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ уровня. Π’Π°ΠΊ ΠΆΠ΅ ΠΈ Π² случаС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ столкновСний. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ, Π½Π΅ столкнулся Π»ΠΈ ΡˆΠ°Ρ€ΠΈΠΊ с ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ², ΠΌΡ‹ Π²ΠΎΠ·Π»Π°Π³Π°Π΅ΠΌ эту Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ осущСствит эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π·Π° нас. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ‘экран’ (screen). Π­Ρ‚Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ дСйствия, происходящиС Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ (Ρ‚.Π΅. Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС). Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ пСрСрисовки ΠΌΡ‹ обсудим Π΄Π°Π»Π΅Π΅ Π² сСкциях РСализация ΠΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ. НаконСц, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, которая связала Π±Ρ‹ всС это вмСстС β€” Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ привСсти Π² дСйствиС Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ. По Π²ΠΏΠΎΠ»Π½Π΅ понятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π°Π·ΠΎΠ²Π΅ΠΌ эту ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ (engine).
Π˜Π³Ρ€Π° Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ спроСктирована Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ всСго Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ уровня. Однако ΠΈΡ… количСство ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ максимально простой, ΠΌΡ‹ выносим прСдставлСниС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π² Π²ΠΈΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½Π΅ исходного ΠΊΠΎΠ΄Π°. Если ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… устройства ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΈΠ· сСти Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ любой ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΉ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ программист. Но для этого, СстСствСнно, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ лишнСго ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников.
Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° этапС проСктирования, β€” это Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана. БпСцификация MIDP Π½Π΅ устанавливаСт ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π°Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π—Π΄Π΅ΡΡŒ всС зависит ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² устройств. ИмСнно ΠΎΠ½ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для своих устройств. ΠžΠ±Ρ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β€” Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° устройств Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана совпадСт Π»ΠΈΠ±ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ совпадСт с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Π²Π°ΠΌΠΈ. Π’ случаС, Ссли Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ совпадут, ΠΈΠ³Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ всС пространство экрана устройства. Если ΠΆΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ устройства окаТСтся большС, Ρ‚ΠΎ ΠΈΠ³Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ физичСской области экрана. Наша ΠΈΠ³Ρ€Π° β€” Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простой ΠΈΠ³Ρ€Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΡΠΊΡƒΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ слоТно, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ стартС ΠΈΠ³Ρ€Ρ‹, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ экрана устройства. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ наша ΠΈΠ³Ρ€Π° всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ максимум доступного Π΅ΠΉ экранного пространства.

РСализация
Как сказал Π”ΠΎΠ½Π°Π»ΡŒΠ΄ ΠšΠ½ΡƒΡ‚: ‘ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ оптимизация β€” это источник всСх Π·ΠΎΠ»’. ВсСцСло довСряя этому Π²Ρ‹ΡΠΊΠ°Π·Ρ‹Π²Π°Π½ΠΈΡŽ, ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ сСбС Тизнь. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ³Ρ€Π° Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ довольно интСрСсныС элСмСнты ΠΊΠΎΠ΄Π°, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ подробности ΠΈΠ΄Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΈ элСмСнты прСдставлСны ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ‘снизу-Π²Π²Π΅Ρ€Ρ…’. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ части Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ высокоуровнСвый ΠΊΠΎΠ΄.

Класс ThreeDColor
Π­Ρ‚ΠΎΡ‚ класс Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ бСзопасный шаблон пСрСчислСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ€Π°Π½Π΅Π΅ прСдставлСн Π² Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ‘Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java’ (‘Effective Java Programming’). ВсС Ρ†Π²Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, прСдставлСны Π² Π²ΠΈΠ΄Π΅ экзСмпляров ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ public.
Private-конструктор Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ установку Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ brighter() ΠΈ darker() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Ρ‹Π±ΠΎΡ€Π° подходящСго Ρ†Π²Π΅Ρ‚Π° для освСщСния ΠΈ затСмнСния соотвСтствСнно. ΠœΠ΅Ρ‚ΠΎΠ΄ getRGB() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ RGB-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» установлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Graphics.setColor(int).

Класс Sprite
Π­Ρ‚ΠΎΡ‚ класс являСтся супСрклассом для классов Ball ΠΈ Brick. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Sprite ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ X ΠΈ Y, ΡˆΠΈΡ€ΠΈΠ½Ρƒ, высоту, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ смСщСниС Ρ‚Π΅Π½ΠΈ. Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π½ΠΈ Π·Π°Π΄Π°Π΅Ρ‚, насколько Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ Ρ‚Π΅Π½ΡŒ. Оно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько высоко Π½Π°Π΄ экраном Π±ΡƒΠ΄Π΅Ρ‚ ‘ΠΏΠ°Ρ€ΠΈΡ‚ΡŒ’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся Π² этом классС, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ‘ΠΎΡ‚Π»ΠΎΠ²Π°’ столкновСний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Он создаСтся Π² конструкторС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ смСщСния Ρ‚Π΅Π½ΠΈ согласно фактичСскому Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ экрана. Π”Π°Π½Π½Ρ‹ΠΉ класс Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для рисования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ‚Π΅Π½Π΅ΠΉ Ρƒ спрайтов. РСализация этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² прСдполагаСтся ΡƒΠΆΠ΅ Π² классах Ball ΠΈ Brick.
Код класса Sprite: Ρ‚ΡƒΡ‚

Класс Ball
Π­Ρ‚ΠΎΡ‚ класс занимаСтся Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ прорисовкой ΡˆΠ°Ρ€ΠΈΠΊΠ°. Радиус ΡˆΠ°Ρ€ΠΈΠΊΠ° (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€) опрСдСляСтся Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана.
ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ (dx, dy), случайныС скоростныС ΠΏΠΎΠΌΠ΅Ρ…ΠΈ (xo, yo), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ схСму (Ρ†Π²Π΅Ρ‚, ΡΡ€ΠΊΠΎΡΡ‚ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌΠ½Π΅Π½ΠΈΠ΅). ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ создаСт экзСмпляры ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса Sprite width (ΡˆΠΈΡ€ΠΈΠ½Π°) ΠΈ height (высота) Π½Π° основС значСния радиуса ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ этого, устанавливаСт Ρ†Π²Π΅Ρ‚.
Π­Ρ‚ΠΎΡ‚ класс содСрТит Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ инструкции ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊ. ΠœΠ΅Ρ‚ΠΎΠ΄ move() устанавливаСт Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ° Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ скорости ΠΈ ΠΏΠΎΠΌΠ΅Ρ…. bounceHorizon-tal() ΠΈ bounceVertical() ΠΏΠΎΠ΄Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ подходящий коэффициСнт скорости послС столкновСния ΡˆΠ°Ρ€ΠΈΠΊΠ° с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ стСнкой. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΡƒΠΏΠΈΠΊΠΎΠ²ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΡˆΠ°Ρ€ΠΈΠΊΡƒ Π½Π΅ΠΊΡƒΠ΄Π° большС Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ), ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ bounce Horizontal() ΠΈ bounceVertical() ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π² Ρ†ΠΈΠΊΠ»Π΅ привносят Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅Ρ… ΠΏΡ€ΠΈ вычислСнии ΠΏΡƒΡ‚ΠΈ. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зацикливания ΠΈΠ³Ρ€Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ paint() ΠΈ paintShadow() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прорисовки ΡˆΠ°Ρ€ΠΈΠΊΠ°.
Код класса Ball: Ρ‚ΡƒΡ‚

Класс Brick
Класс Brick опрСдСляСт ряд основных Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ²: width (ΡˆΠΈΡ€ΠΈΠ½Π°), height (высота), step (шаг), gap (Ρ€Π°Π·Ρ€Ρ‹Π²). Атрибуты width ΠΈ height ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, step β€” это количСство Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Π° gap β€” это расстояниС Π΄ΠΎ смСТных с Π½ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠ². ВсС эти значСния Ρ‚ΠΎΠΆΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ согласно Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ экрана. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² этом классС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ опрСдСлСния для символичСских ΠΈΠΌΠ΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠΎΠ²: zombie (для Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ²), standart (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ), fixed (Π½Π΅Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΠΌΡ‹Π΅ Π±Π»ΠΎΠΊΠΈ) ΠΈ slide (Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° мСсто своих сосСдСй, Ссли Ρ‚Π°ΠΊΠΎΠ΅ мСсто Π΅Ρ‰Π΅ Π½Π΅ занято). НаконСц, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ряд Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π΅Π³ΠΎ позиционирования Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, Ρ‚ΠΈΠΏΠ°, Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмы, количСства ΠΎΡ‡ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ даСтся Π·Π° Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этого Π±Π»ΠΎΠΊΠ° ΠΈ ссылки Π½Π° список Π±Π»ΠΎΠΊΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚.
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠ° инициализируСтся конструктором. ΠœΠ΅Ρ‚ΠΎΠ΄ clear() удаляСт Π±Π»ΠΎΠΊ с ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, hit() Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ столкновСниС с ΡˆΠ°Ρ€ΠΈΠΊΠΎΠΌ. IsFixed() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли этот Π±Π»ΠΎΠΊ нСльзя Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡŒ (Ρ‚ΠΈΠΏ fixed). Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ классС, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ paint() ΠΈ paintShadow() ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для прорисовки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
Код класса Brick: Ρ‚ΡƒΡ‚

Класс BrickList
BrickList β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ класс, относящийся ΠΊ высокоуровнСвым классам нашСй ΠΈΠ³Ρ€Ρ‹. Π­Ρ‚ΠΎΡ‚ класс занимаСтся Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠΎΠ² Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. Он Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСх ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ с расстановкой Ρ†Π²Π΅Ρ‚ΠΎΠ². ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ BrickList ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ располоТСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠœΠ΅Ρ‚ΠΎΠ΄ moveBrick() ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π±Π»ΠΎΠΊ с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, checkForCollision() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” число большС нуля, Ссли ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ столкновСниС ΡˆΠ°Ρ€ΠΈΠΊΠ° с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ списка Π±Π»ΠΎΠΊΠΎΠ². Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” это количСство ΠΎΡ‡ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠΊ Π·Π° сбитый Π±Π»ΠΎΠΊ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ бСрСтся ΠΈΠ· свойства ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сбитого Π±Π»ΠΎΠΊΠ°. ПослС этого количСство Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ ΠΎΡ‡ΠΊΠΎΠ² увСличиваСтся Π½Π° это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ checkCollision() Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° столкновСниС, Ρ‚Π΅ΠΌ самым ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΈΠ· процСсса ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° столкновСния любой Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ мусор (Π΄Π°, это Π΅ΡΡ‚ΡŒ оптимизация).
ΠœΠ΅Ρ‚ΠΎΠ΄ isClean() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ (ΠΈ, соотвСтствСнно, Π² спискС) Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ большС стандартных Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false. getNeighbor() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΡΠ΅Π΄ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ для Π±Π»ΠΎΠΊΠ°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Если для этого Π±Π»ΠΎΠΊΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π½Π΅Ρ‚ большС сосСдСй, Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ null. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ paint() ΠΈ paintShadow() ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ всС Π±Π»ΠΎΠΊΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа, ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ paint() ΠΈ paintShadow() для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· своих элСмСнтов-Π±Π»ΠΎΠΊΠΎΠ².
Код класса BrickList: Ρ‚ΡƒΡ‚

Класс Screen
Π­Ρ‚ΠΎΡ‚ класс заправляСт всСми высокоуровнСвыми опСрациями ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ нашСй ΠΈΠ³Ρ€Π΅. Он Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ экраны, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обсуТдали Π² сСкции ОписаниС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ состояниС Ρƒ класса Engine, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ экран ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. Π’ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΌ экранС Π½Π° имя Π°Π²Ρ‚ΠΎΡ€Π° Π½Π°Π»ΠΎΠΆΠ΅Π½Π° ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠ°Ρ анимация, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ имя Π°Π²Ρ‚ΠΎΡ€Π° поднимаСтся ΠΈΠ· Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ экрана. Для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ этот класс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ wildcard_y. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ keyPressed() ΠΈ keyReleased() ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°ΡŽΡ‚ события, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π² класс Engine.
Код класса Screen: Ρ‚ΡƒΡ‚

Класс Engine
Π­Ρ‚ΠΎΡ‚ класс ΠΌΠΎΠΆΠ½ΠΎ смСло ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ сСрдцСм нашСй ΠΈΠ³Ρ€Ρ‹. Он Ρ…Ρ€Π°Π½ΠΈΡ‚ всС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ pattern_list (прСдставлСнныС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, посмотрСв Π½Π° исходныС Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· особого Ρ‚Ρ€ΡƒΠ΄Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС, Ρ‡Ρ‚ΠΎ собой Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ) ΠΈ опрСдСляСт ряд Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… состояний, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Π°. Π­Ρ‚ΠΎ состояния title, play, over ΠΈ demo. Π˜Π³Ρ€Π° стартуСт, начиная с состояния title, ΠΊΠΎΠ³Π΄Π° отобраТаСтся заставочный экран. Если Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π° какая-Π½ΠΈΠ±ΡƒΠ΄ΡŒ клавиша, ΠΈΠ³Ρ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ состояниС play. Π˜Π½Π°Ρ‡Π΅ ΠΎΠ½Π° стартуСт дСмонстрационный Ρ€Π΅ΠΆΠΈΠΌ (состояниС demo). Π’ этом состоянии ΠΈΠ³Ρ€Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚ сама Π² сСбя. Π’Ρ‹ΠΉΡ‚ΠΈ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ play ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΆΠ°Π² Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ. Π’ случаС, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊ тСряСт всС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΅ΠΌΡƒ ΠΆΠΈΠ·Π½ΠΈ, ΠΈΠ³Ρ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС over. Если Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΈΠ³Ρ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ play, ΠΈΠ½Π°Ρ‡Π΅ стартуСт Ρ€Π΅ΠΆΠΈΠΌ demo. Основной Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ run(). Π—Π΄Π΅ΡΡŒ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ³Ρ€Ρ‹ ‘засыпаСт’ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, послС Ρ‡Π΅Π³ΠΎ Π°Π½ΠΈΠΌΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, пСрСрисовываСт экран. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌ количСствС Π°Ρ€ΠΊΠ°Π΄Π½Ρ‹Ρ… ΠΈΠ³Ρ€ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ.
Π’ этом Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ³Ρ€Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго обновляСт своС состояниС. Π‘Ρ€Π΅Π΄ΠΈ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ³Ρ€Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, β€” ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ случайных чисСл ΠΈ враТСский AI (Artificial Intelligence β€” искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚). ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ состояниС ΠΈΠ³Ρ€Ρ‹ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ, экран пСрСрисовываСтся. ПослС пСрСрисовки Π΄Π²ΠΈΠΆΠΎΠΊ ‘спит’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ вСсь этот процСсс Π·Π°Π½ΠΎΠ²ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСзависимо ΠΎΡ‚ Π½Π΅Π³ΠΎ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π²ΠΈΠΆΠΊΠ° запускаСтся Π² своСм собствСнном ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Π­Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ посрСдством использования Π² классС Engine Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² интСрфСйса Runnable. ПослС Ρ‡Π΅Π³ΠΎ создаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Thread, ΠΈ Π΅Π³ΠΎ конструктору пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нашСго Π΄Π²ΠΈΠΆΠΊΠ°. ΠŸΡ€ΠΈ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ thread ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ запускаСт сам Π΄Π²ΠΈΠΆΠΎΠΊ посрСдством Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° run() класса Engine.
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ клавиш. Код клавиши, Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, записываСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π΅Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ отпускаСт эту ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΊΠΎΠ΄ΠΎΠΌ клавиши сбрасываСтся. Основной Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ доску, ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π² Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΏΠΎΠΊΠ° клавиша Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°.
Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ доску Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΡ€Π°ΠΉ экрана, ΠΈΠ³Ρ€ΠΎΠΊΡƒ Π½Π΅ потрСбуСтся нСсколько Ρ€Π°Π· Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ. Он Π΅Π΅ просто ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° доска Π½Π΅ пСрСмСстится Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ Π΅ΠΌΡƒ мСсто.
Код класса Engine: Ρ‚ΡƒΡ‚

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ
Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ запускаСм ΠΈΠ³Ρ€Ρƒ Π² срСдС WTK ΠΈΠ»ΠΈ Π½Π° самом устройствС, сразу бросаСтся Π² Π³Π»Π°Π·Π° Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ наш ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ прорисовкС экрана слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ. Анимация слишком рСзкая ΠΈ рывковая. Π’ ΠΈΠ³Ρ€Ρƒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ.
Надо Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ срочно ΠΌΠ΅Π½ΡΡ‚ΡŒ. Π’ нашСм случаС ΠΌΡ‹ просто пСрСрисовывали вСсь экран для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ°. Богласно ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ нашСй ΠΈΠ³Ρ€Ρ‹ понятно, Ρ‡Ρ‚ΠΎ это просто Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΈΠ³Ρ€Π΅ Ρƒ нас ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ° ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΡƒ происходит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΡƒΡ… Π²Π΅Ρ‰Π΅ΠΉ: Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ доски (Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚). Π˜Π·Ρ€Π΅Π΄ΠΊΠ° наш мячик соударяСтся со стандартным Π±Π»ΠΎΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послС этого исчСзаСт, Π»ΠΈΠ±ΠΎ со ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΠΈΠΌ (slide) Π±Π»ΠΎΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° мСсто своСго сосСда, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ. Π’ этом случаСм Π½Π°ΠΌ придСтся ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ вСсь список Π±Π»ΠΎΠΊΠΎΠ². Однако послС Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ изучСния ΠΌΡ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, собствСнно говоря, вСсь список ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. МоТно просто ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ сбитый стандартный Π±Π»ΠΎΠΊ ΠΈΠ· списка ΠΈΠ»ΠΈ, Ссли это slide-Π±Π»ΠΎΠΊ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² старой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ список Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ изобраТСния ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Π±ΡƒΡ„Π΅Ρ€ Π½Π° экран Π²ΠΎ врСмя пСрСрисовки. Π’Π°ΠΊ, Π²ΠΎ врСмя измСнСния списка (ΠΈΠ·-Π·Π° сбитого ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°) ΠΌΡ‹ пСрСрисовываСм ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡˆΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ списка Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ изобраТСния.
Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, оптимизация ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… областях. ГрафичСская ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” это ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… областСй, ΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ это Π² Π²ΠΈΠ΄Ρƒ. Однако ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π² вычислСниях Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° для вашСй ΠΈΠ³Ρ€Ρ‹. Если ваша ΠΈΠ³Ρ€Π° Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° столкновСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ расчСты ΠΈΠ³Ρ€Ρ‹. Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС каТущиСся Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ прослСдитС, насколько это ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссор. WTK 2.0 ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный инструмСнт для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° загруТСнности процСссора эмулятором. Но Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹: Π΅Π³ΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹ Π½Π΅ всСгда ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ происходящСго Π½Π° настоящих устройствах. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, сначала ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ ваша рСализация ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния. Если Π½Π΅Ρ‚, Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π±ΠΎΠ»Π΅Π΅ быстрый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° элСмСнты управлСния. НСт Π½ΠΈΡ‡Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ, Π° Π² ΠΈΠ³Ρ€Π°Ρ… особСнно, Ρ‡Π΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΈ ΠΈΠ½Π΅Ρ€Ρ‚Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ³Ρ€Ρ‹ ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒ свои ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ способности.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ
ΠŸΡ€ΠΈ мысли ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ… Π½Π° ΡƒΠΌ приходят Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ β€” привнСсти Π² ΠΈΠ³Ρ€Ρƒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ². НапримСр, Π±Π»ΠΎΠΊ-Π±ΠΎΠΌΠ±Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ взрываСтся ΠΏΡ€ΠΈ соударСнии с ΡˆΠ°Ρ€ΠΈΠΊΠΎΠΌ ΠΈ сбиваСт всС ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ радиусС, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΄Π°ΠΆΠ΅ фиксированныС Π±Π»ΠΎΠΊΠΈ. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π±Π»ΠΎΠΊ-Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π² Π½Π΅Π³ΠΎ ΡˆΠ°Ρ€ΠΈΠΊΠ° происходит инвСрсия клавиш управлСния ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ доски. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ доску Π²Π»Π΅Π²ΠΎ доска двиТСтся Π²ΠΏΡ€Π°Π²ΠΎ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Вторая Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΈΠ³Ρ€Ρƒ, β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ сСтСвой. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈΠ· сСти Π½ΠΎΠ²Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра. Π­Ρ‚ΠΈ измСнСния сильно ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ ΠΈ приукрасят Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ для этого Π½Π΅ потрСбуСтся сильно ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

Π’Ρ‹Π²ΠΎΠ΄
Π‘Π°ΠΌΡ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ: рисованиС β€” занятиС ΠΎΡ‡Π΅Π½ΡŒ рСсурсоСмкоС. Если Π²Ρ‹ посмотритС Π½Π° ΠΊΠΎΠ΄ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ большого различия. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, различия Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ³Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π²Π΅Π»ΠΈΠΊΠΈ. Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π° Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ, свою ΠΈΠ³Ρ€Ρƒ, Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² дСйствии Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ устройствС. Π₯ΠΎΡ‚ΡŒ WTK β€” это ΠΈ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ Π² ΠΈΠ³Ρ€Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, лишь запустив Π΅Π΅ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ мобильном устройствС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΌΡ‹ рассмотрим сСтСвой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠ³Ρ€Ρ‹ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ Π½Π° Java.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *