ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java

Бвоя Π·ΠΌΠ΅ΠΉΠΊΠ°, ΠΈΠ»ΠΈ пишСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π§Π°ΡΡ‚ΡŒ 0

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Π“Π»Π°Π²Π° 1. Π˜Ρ‚Π°ΠΊ, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π½Π΅ΠΌ?

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ лишнСго Π½Π΅ понадобится, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ (ΠΈΠ»ΠΈ ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€), ΠΈ компилятор C#, ΠΎΠ½ присутствуСт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Windows, находится ΠΎΠ½ Π² Π‘:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор послСднСй вСрсии ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поставляСтся с visual studio, ΠΎΠ½ находится Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe.

«@echo off» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² консоли. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ goto ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ бСсконСчный Ρ†ΠΈΠΊΠ». Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ name, Π° с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ /p Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ записываСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² консоль. Β«echo.Β» просто оставляСт ΠΏΡƒΡΡ‚ΡƒΡŽ строчку Π² консоли. Π”Π°Π»Π΅Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ компилятор ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ» нашСго ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ скомпилируСт.

Π“Π»Π°Π²Π° 2. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ΠΏΠΎΠ»Π΅ нашСй ΠΈΠ³Ρ€Ρ‹, начиная с Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ X ΠΈ Y, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π±ΡƒΡ„Π΅Ρ€ ΠΎΠΊΠ½Π° консоли, ΠΈ скроСм ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ курсора.

Для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран нашСй Β«Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΒ» создадим свой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… β€” Ρ‚ΠΎΡ‡ΠΊΠ°. Он Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ выводится Π½Π° экран. Π’Π°ΠΊΠΆΠ΅ сдСлаСм ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π΅Π΅ «стирания».

Π­Ρ‚ΠΎ интСрСсно!
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ => называСтся лямбда-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС опрСдСлСния Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… лямбда Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π² качСствС Ρ‚Π΅Π»Π°, состоящСго ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ выраТСния, синтаксичСский сахар, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСопрСдСлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (ΠΏΡ€ΠΎ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ класс стСн, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. НапишСм 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° созданиС Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ, ΠΈ Π² конструкторС Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ отрисовку всСх 4Ρ… сторон Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ символом. Бписок всСх Ρ‚ΠΎΡ‡Π΅ΠΊ Π² стСнкС Π½Π°ΠΌ пригодится ΠΏΠΎΠ·ΠΆΠ΅.

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Point ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ° Point p = (x, y, ch); ΠΊΠ°ΠΊ ΠΈ Ρƒ встроСнных Ρ‚ΠΈΠΏΠΎΠ², это становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° implicit, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описываСтся ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ВСрнСмся ΠΊ классу Game ΠΈ объявим ΠΏΠΎΠ»Π΅ walls, Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π΅.

ВсС! МоТно ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нашС ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΠ»ΠΎΡΡŒ, ΠΈ самая лСгкая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ·Π°Π΄ΠΈ.

Π“Π»Π°Π²Π° 3. А Ρ‡Ρ‚ΠΎ сСгодня Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ?

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΅Π΄Ρ‹ Π½Π° нашСм ΠΏΠΎΠ»Π΅, для этого создадим класс FoodFactory, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ созданиСм Π΅Π΄Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Ρ€Π°Π½ΠΈΡ†.

ДобавляСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ΠΈ создадим Π΅Π΄Ρƒ Π½Π° ΠΏΠΎΠ»Π΅

Π“Π»Π°Π²Π° 4. ВрСмя Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ гСроя

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ созданию самой Π·ΠΌΠ΅ΠΈ, ΠΈ для Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ пСрСчислСниС направлСния двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π³Π΄Π΅ опишСм ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π·Π°Ρ‚ΡŒ, ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ список Ρ‚ΠΎΡ‡Π΅ΠΊ Π·ΠΌΠ΅ΠΈ, нашС пСрСчислСниС, шаг Π½Π° сколько Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π·Π° Ρ…ΠΎΠ΄, ΠΈ ссылки Π½Π° Ρ…Π²ΠΎΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈ Π³ΠΎΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΈ конструктор, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ рисуСм змСю Π² Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ ΠΏΡ€ΠΈ стартС ΠΈΠ³Ρ€Ρ‹.

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ возмоТности ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ сразу Π½Π° 180 градусов, просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 2 стороны. А ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Π½Π° 180 градусов двумя наТатиями β€” поставив Β«ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒΒ», ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ наТатия, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ послС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π°.

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ вывСсти Π΅Π΅ Π½Π° экран.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ всС Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, ΠΏΠΎΠ»Π΅ ΠΎΠ³ΠΎΡ€ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ стСнами, Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π΅Π΄Π°, ΠΈ Π·ΠΌΠ΅ΠΉΠΊΠ°. ΠŸΡ€ΠΈΡˆΠ»Π° ΠΏΠΎΡ€Π° Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всС это Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π“Π»Π°Π²Π° 5. Π›-Π»ΠΎΠ³ΠΈΠΊΠ°

Заставим Π½Π°ΡˆΡƒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, напишСм бСсконСчный Ρ†ΠΈΠΊΠ» для считывания клавиш Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Π·ΠΌΠ΅ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π½Π°Π΄ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС Π³ΠΎΠ»ΠΎΠ²Ρ‹ с Π΅Π΄ΠΎΠΉ, стСнками ΠΈ хвостом Π·ΠΌΠ΅ΠΈ. Для этого Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° совпадСниС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ равСнства ΠΈ Π½Π΅ равСнства, ΠΈΡ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π² ΠΏΠ°Ρ€Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ совпадаСт Π»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π°Ρ нас Ρ‚ΠΎΡ‡ΠΊΠ° с ΠΊΠ°ΠΊΠΎΠΉ Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· массива стСн.

И ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ Π½Π΅ совпадаСт Π»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° с хвостом.

И ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ съСла Π»ΠΈ Π΅Π΄Ρƒ наша Π·ΠΌΠ΅ΠΉΠΊΠ°, ΠΈ сразу Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅.

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ двиТСния, со всСми Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ.

Π’ΠΎΡ‚ ΠΈ всС! Наша Π·ΠΌΠ΅ΠΉΠΊΠ° Π² консоли Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π° ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ.
ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. image loader. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΡ‹ посмотрСли ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ ΠΈΠ³Ρ€Ρƒ с нСбольшим использованиСм ООП, Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, посмотрСли Π½Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈ лямбда ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, надСюсь это Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ!

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° пилотная ΡΡ‚Π°Ρ‚ΡŒΡ, ΠΈ Ссли Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ, я Π½Π°ΠΏΠΈΡˆΡƒ ΠΏΡ€ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π·ΠΌΠ΅ΠΉΠΊΠΈ Π½Π° Unity.
ВсСм ΡƒΠ΄Π°Ρ‡ΠΈ!

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

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою Π·ΠΌΠ΅ΠΉΠΊΡƒ Π½Π° Java Π·Π° 15 ΠΌΠΈΠ½ΡƒΡ‚

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ писали сапёра Π·Π° 15 ΠΌΠΈΠ½ΡƒΡ‚, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ займёмся классичСской Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ.

Π’ этот Ρ€Π°Π· Π½Π°ΠΌ снова понадобятся:

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ с этим вопросом ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, поэтому ΠΌΠ½Π΅ показалось умСстным ΠΏΠΎΡΠ²ΡΡ‚ΠΈΡ‚ΡŒ этому Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ΡˆΠ΅ я Π΄Π°Π» ссылку Π½Π° скачиваниС Π°Ρ€Ρ…ΠΈΠ²Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ я, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с вСрсиями ΠΈ вопросов, Π³Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ. ΠŸΠ°ΠΏΠΊΡƒ ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π° трСбуСтся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π²Π°ΡˆΡƒ IDE.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ InteliJ IDEA Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΠ°ΠΊ Ρ€Π°Π· с ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π― Π½Π°ΡˆΡ‘Π» Π² сСти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄Π΅ΠΎΠ³Π°ΠΉΠ΄:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я сдСлал всё Π² точности ΠΏΠΎ Π½Π΅ΠΌΡƒ, Ρƒ мСня Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈ всё Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

Π Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ

Π‘ этой стороны наша Π·Π°Π΄Π°Ρ‡Π° ΠΌΠ°Π»ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ выполняли ΠΏΡ€ΠΈ написании Π‘Π°ΠΏΡ‘Ρ€Π°. Π‘Π½ΠΎΠ²Π° создаём класс GUI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ состояниС всСх графичСских элСмСнтов. Если Ρ‚ΠΎΡ‡Π½Π΅Π΅:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, здСсь я ΡƒΠΆΠ΅ использовал нСсколько констант. Для Π½ΠΈΡ… Π±Ρ‹Π» создан ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс Constants с public static полями. Π’ΠΎΡ‚ ΠΎΠ½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ:

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹

Π‘Π°ΠΌΠΎΠ΅ врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ наша змСя Π±ΡƒΠ΄Π΅Ρ‚, собствСнно, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ. Π’Π°ΠΌ навСрняка доводилось Π²ΠΈΠ΄Π΅Ρ‚ΡŒ вывСски, Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ Π±Π΅Π³Π°ΡŽΡ‚ огоньки? РазумССтся, сами Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠΈ Π² Π½ΠΈΡ… Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, просто ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΊ послСдняя гаснСт, Π° пСрвая заТигаСтся. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ наша змСя.

ПишСм класс ΠΊΠ»Π΅Ρ‚ΠΊΠΈ

ДобавляСм Π³Π΅Ρ‚Ρ‚Π΅Ρ€ ΠΈ сСттСр для состояния ΠΊΠ»Π΅Ρ‚ΠΊΠΈ поля Π² GUI

ДобавляСм ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² GUI

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

ПишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript + Canvas

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, стоит Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ созданию ΠΈΠ³Ρ€Ρ‹ ΠΈ написанию ΠΊΠΎΠ΄Π°. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Sublime Text. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, это Π½Π΅ Π²Π°ΠΆΠ½ΠΎ. ВсС Π΄Π΅Π»Π°Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ быстрСС.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, напишСм сам ΠΊΠΎΠ΄ для встраивания canvas Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Напомню, Ρ‡Ρ‚ΠΎ canvas поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² HTML5.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ созданию самой ΠΈΠ³Ρ€Ρ‹.

НачинаСм

Для Π½Π°Ρ‡Π°Π»Π°, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠ°, Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ понятнСС. Наша Π·ΠΌΠ΅ΠΉΠΊΠ° β€” это массив. Массив элСмСнтов, элСмСнты β€” это Π΅Π΅ части, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ всСго лишь ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ X ΠΈ Y. Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, X β€” Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒ, Y β€” Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΌΡ‹ прСдставляСм сСбС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. b128dc48d2a65b194d2653cfc80c8402. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-b128dc48d2a65b194d2653cfc80c8402. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° b128dc48d2a65b194d2653cfc80c8402. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Она Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ, Π² этом Π½Π΅Ρ‚ сомнСния, Π½ΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (Π² частности, canvas) ΠΎΠ½Π° выглядит ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. image loader. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с canvas. Π―, ΠΊΠΎΠ³Π΄Π° столкнулся с этим, сначала Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ понял Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° (0,0), Π±Π»Π°Π³ΠΎ я быстро разобрался. НадСюсь ΠΈ Ρƒ вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ.

ВСрнСмся ΠΊ элСмСнтам Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π΅Π΅ частям. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ высоту ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. Π­Ρ‚ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, Π½Π΅ Π±ΠΎΠ»Π΅Π΅. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΎΡ‚ нарисовали Π·ΠΌΠ΅ΠΉΠΊΡƒ, всС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, ΠΎΠ½ΠΈ ΠΈΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠ΅. И Ρ‚ΡƒΡ‚ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π²ΠΏΡ€Π°Π²ΠΎ. Как Π±Ρ‹ Π²Ρ‹ поступили?

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

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π² дальнСйшСм Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

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

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, сказав, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ ΠΌΠΎΠ³ Π±Ρ‹ просто холсту ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту, ΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ 30. Но Π½Π° самом Π΄Π΅Π»Π΅, это Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ я Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю ΡˆΠΈΡ€ΠΈΠ½Ρƒ экрана. И Π² случаС, Ссли ΡˆΠΈΡ€ΠΈΠ½Π° = 320, Ρ‚ΠΎ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π°ΠΆ Ρ†Π΅Π»Ρ‹Ρ… 20 пиксСлСй Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ дискомфорт. ИмСнно поэтому Π² нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ всС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² дСлятся Π½Π° 30, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ вынСсти это ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° достаточно часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅. Но ΠΊ этому Π²Ρ‹Π²ΠΎΠ΄Ρƒ я ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΏΠΎΠ·Π΄Π½ΠΎ. (Но Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сдСлаСм Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠΌΠ΅Π»Π° Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ качСство отобраТСния. По Ρ…ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ, я Π±ΡƒΠ΄Ρƒ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСстах Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сСбС ΠΈΠΌΠ΅ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΊΠΎΠ΄Π°.

Если Ρ‡Ρ‚ΠΎ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ innerWidth ΠΈ innerHeight хранятся Π² глобальном пространствС ΠΈΠΌΠ΅Π½.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. ΠŸΡ€Π°Π²Π΄Π°, я Π½Π΅ знаю ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° анимация, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setInterval, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ число 60. МоТно Ρ‡ΡƒΡ‚ΡŒ большС, 75 Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ ΠΌΠ½Π΅ нравится 60. Ѐункция всСго Π½Π° всСго ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 60 мс. рисуСт Π·ΠΌΠ΅ΠΉΠΊΡƒ Β«Π·Π°Π½ΠΎΠ²ΠΎΒ». Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ написаниС ΠΊΠΎΠ΄Π° β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π».

ΠŸΠΎΠΊΠ°ΠΆΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ отрисовку нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π±Π΅Π· двиТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наша Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π΅ сталкиваСтся сама с собой, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π½Π΅ Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ послСднСго элСмСнта (Π³ΠΎΠ»ΠΎΠ²Ρ‹) Π·ΠΌΠ΅ΠΉΠΊΠΈ Π»ΡŽΠ±Ρ‹ΠΌ из… Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ говоря: Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π»ΠΈ столкновСниС. Π­Ρ‚Π° строчка ΠΊΠΎΠ΄Π° Π±Ρ‹Π»Π° Π΅Π΄ΠΈΠ½ΠΎΠΉ строкой, Π½ΠΎ Π²Π°ΠΌ сдСлал Π΅Π΅ понятной. Напоминаю, Ρ‡Ρ‚ΠΎ всС это добавляСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π²Ρ‹ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ измСняСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΌΡ‹ Π²Π΅Ρ‡Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ «сохраняСм», сначала ΠΏΠΎΠ΄Π΅Π»ΠΈΠ², Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΠ² ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠΈΠ² Π½Π° число s. Π­Ρ‚ΠΎ всС Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый способ выравнивания Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ яблока. Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС строгоС, простоС, поэтому ΠΈ Π΅ΡΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠ° яблоко ΠΌΠΎΠΆΠ΅Ρ‚ строго ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π½ Π² самом Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°. И Ссли Π±Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠΈ Ρ…ΠΎΡ‚ΡŒ Π½Π° 1px ΡΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈΡΡŒ Π±Ρ‹, Ρ‚ΠΎ яблоко нСльзя Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΡŠΠ΅ΡΡ‚ΡŒ. И Π΄Π°, это простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, поэтому всС Ρ‚Π°ΠΊ сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ.

Ну Π° Π½Π°ΠΌ ΠΆΠ΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· массива хвост (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт), Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² самый ΠΊΠΎΠ½Π΅Ρ† ΠΈ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всю Π·ΠΌΠ΅ΠΉΠΊΡƒ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ строчки ΠΊΠΎΠ΄Π°.

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

Π’ΡƒΡ‚ ΠΌΡ‹ сдСлали Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ссли Π·ΠΌΠ΅ΠΉΠΊΠ° двигаСтся Π²ΠΏΡ€Π°Π²ΠΎ, Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π»Π΅Π²ΠΎ. Π­Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅.

Π’ΠΎΡ‚ ΠΈ всС, Π΄Ρ€ΡƒΠ·ΡŒΡ. Моя пСрвая ΡΡ‚Π°Ρ‚ΡŒΡ, написанная Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². НадСюсь, всС Π±Ρ‹Π»ΠΎ понятно ΠΈ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ. Π—ΠΌΠ΅ΠΉΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, счСтчик ΠΎΡ‡ΠΊΠΎΠ², Ρ€Π΅ΠΊΠΎΡ€Π΄Ρ‹, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ, Π½ΠΎ это всС ΡƒΠΆΠ΅ дополнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сами. На этом всС, всСм ΡƒΠ΄Π°Ρ‡ΠΈ!

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

ПишСм ΠΈΠ³Ρ€Ρƒ Π·ΠΌΠ΅ΠΉΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript + Canvas

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, стоит Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ созданию ΠΈΠ³Ρ€Ρ‹ ΠΈ написанию ΠΊΠΎΠ΄Π°. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Sublime Text. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, это Π½Π΅ Π²Π°ΠΆΠ½ΠΎ. ВсС Π΄Π΅Π»Π°Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ быстрСС.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, напишСм сам ΠΊΠΎΠ΄ для встраивания canvas Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Напомню, Ρ‡Ρ‚ΠΎ canvas поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² HTML5.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ созданию самой ΠΈΠ³Ρ€Ρ‹.

НачинаСм

Для Π½Π°Ρ‡Π°Π»Π°, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠ°, Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ понятнСС. Наша Π·ΠΌΠ΅ΠΉΠΊΠ° β€” это массив. Массив элСмСнтов, элСмСнты β€” это Π΅Π΅ части, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ всСго лишь ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ X ΠΈ Y. Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, X β€” Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒ, Y β€” Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΌΡ‹ прСдставляСм сСбС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. b128dc48d2a65b194d2653cfc80c8402. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-b128dc48d2a65b194d2653cfc80c8402. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° b128dc48d2a65b194d2653cfc80c8402. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Она Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ, Π² этом Π½Π΅Ρ‚ сомнСния, Π½ΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (Π² частности, canvas) ΠΎΠ½Π° выглядит ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. image loader. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с canvas. Π―, ΠΊΠΎΠ³Π΄Π° столкнулся с этим, сначала Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ понял Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° (0,0), Π±Π»Π°Π³ΠΎ я быстро разобрался. НадСюсь ΠΈ Ρƒ вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ.

ВСрнСмся ΠΊ элСмСнтам Π·ΠΌΠ΅ΠΉΠΊΠΈ, Π΅Π΅ частям. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ высоту ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ. Π­Ρ‚ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, Π½Π΅ Π±ΠΎΠ»Π΅Π΅. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΎΡ‚ нарисовали Π·ΠΌΠ΅ΠΉΠΊΡƒ, всС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, ΠΎΠ½ΠΈ ΠΈΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠ΅. И Ρ‚ΡƒΡ‚ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π²ΠΏΡ€Π°Π²ΠΎ. Как Π±Ρ‹ Π²Ρ‹ поступили?

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

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π² дальнСйшСм Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

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

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, сказав, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ ΠΌΠΎΠ³ Π±Ρ‹ просто холсту ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту, ΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ 30. Но Π½Π° самом Π΄Π΅Π»Π΅, это Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ я Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю ΡˆΠΈΡ€ΠΈΠ½Ρƒ экрана. И Π² случаС, Ссли ΡˆΠΈΡ€ΠΈΠ½Π° = 320, Ρ‚ΠΎ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π°ΠΆ Ρ†Π΅Π»Ρ‹Ρ… 20 пиксСлСй Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ дискомфорт. ИмСнно поэтому Π² нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ всС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² дСлятся Π½Π° 30, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ вынСсти это ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° достаточно часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅. Но ΠΊ этому Π²Ρ‹Π²ΠΎΠ΄Ρƒ я ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΏΠΎΠ·Π΄Π½ΠΎ. (Но Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сдСлаСм Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠΌΠ΅Π»Π° Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ качСство отобраТСния. По Ρ…ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ, я Π±ΡƒΠ΄Ρƒ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСстах Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сСбС ΠΈΠΌΠ΅ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΊΠΎΠ΄Π°.

Если Ρ‡Ρ‚ΠΎ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ innerWidth ΠΈ innerHeight хранятся Π² глобальном пространствС ΠΈΠΌΠ΅Π½.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. ΠŸΡ€Π°Π²Π΄Π°, я Π½Π΅ знаю ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π·ΠΌΠ΅ΠΉΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° анимация, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setInterval, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ число 60. МоТно Ρ‡ΡƒΡ‚ΡŒ большС, 75 Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ ΠΌΠ½Π΅ нравится 60. Ѐункция всСго Π½Π° всСго ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 60 мс. рисуСт Π·ΠΌΠ΅ΠΉΠΊΡƒ Β«Π·Π°Π½ΠΎΠ²ΠΎΒ». Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ написаниС ΠΊΠΎΠ΄Π° β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π».

ΠŸΠΎΠΊΠ°ΠΆΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ отрисовку нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ, ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π±Π΅Π· двиТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наша Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π΅ сталкиваСтся сама с собой, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π½Π΅ Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ послСднСго элСмСнта (Π³ΠΎΠ»ΠΎΠ²Ρ‹) Π·ΠΌΠ΅ΠΉΠΊΠΈ Π»ΡŽΠ±Ρ‹ΠΌ из… Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ говоря: Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π»ΠΈ столкновСниС. Π­Ρ‚Π° строчка ΠΊΠΎΠ΄Π° Π±Ρ‹Π»Π° Π΅Π΄ΠΈΠ½ΠΎΠΉ строкой, Π½ΠΎ Π²Π°ΠΌ сдСлал Π΅Π΅ понятной. Напоминаю, Ρ‡Ρ‚ΠΎ всС это добавляСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π²Ρ‹ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ измСняСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΌΡ‹ Π²Π΅Ρ‡Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ «сохраняСм», сначала ΠΏΠΎΠ΄Π΅Π»ΠΈΠ², Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΠ² ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠΈΠ² Π½Π° число s. Π­Ρ‚ΠΎ всС Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый способ выравнивания Π·ΠΌΠ΅ΠΉΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ яблока. Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС строгоС, простоС, поэтому ΠΈ Π΅ΡΡ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΠ° яблоко ΠΌΠΎΠΆΠ΅Ρ‚ строго ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π½ Π² самом Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°. И Ссли Π±Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠΈ Ρ…ΠΎΡ‚ΡŒ Π½Π° 1px ΡΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈΡΡŒ Π±Ρ‹, Ρ‚ΠΎ яблоко нСльзя Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΡŠΠ΅ΡΡ‚ΡŒ. И Π΄Π°, это простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, поэтому всС Ρ‚Π°ΠΊ сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ.

Ну Π° Π½Π°ΠΌ ΠΆΠ΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· массива хвост (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт), Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² самый ΠΊΠΎΠ½Π΅Ρ† ΠΈ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всю Π·ΠΌΠ΅ΠΉΠΊΡƒ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ строчки ΠΊΠΎΠ΄Π°.

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

Π’ΡƒΡ‚ ΠΌΡ‹ сдСлали Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ссли Π·ΠΌΠ΅ΠΉΠΊΠ° двигаСтся Π²ΠΏΡ€Π°Π²ΠΎ, Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π»Π΅Π²ΠΎ. Π­Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅.

Π’ΠΎΡ‚ ΠΈ всС, Π΄Ρ€ΡƒΠ·ΡŒΡ. Моя пСрвая ΡΡ‚Π°Ρ‚ΡŒΡ, написанная Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². НадСюсь, всС Π±Ρ‹Π»ΠΎ понятно ΠΈ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ. Π—ΠΌΠ΅ΠΉΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, счСтчик ΠΎΡ‡ΠΊΠΎΠ², Ρ€Π΅ΠΊΠΎΡ€Π΄Ρ‹, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ, Π½ΠΎ это всС ΡƒΠΆΠ΅ дополнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сами. На этом всС, всСм ΡƒΠ΄Π°Ρ‡ΠΈ!

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

H Π—ΠΌΠ΅ΠΉΠΊΠ° Π² 33 строки для Android Π½Π° Java Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠ°Ρ…

ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. 45cc9829bd1943879d60bfdde271a406. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-45cc9829bd1943879d60bfdde271a406. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 45cc9829bd1943879d60bfdde271a406. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, 33 строки β€” это Β«ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΉΒ» Ρ…ΠΎΠ΄ для привлСчСния внимания.
ПолноС количСство строк Π² основном ΠΈ СдинствСнном классС Ρ€Π°Π²Π½ΠΎ 86, Π½ΠΎ ядро ΠΊΠ°ΠΊ Ρ€Π°Π· ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ (33). Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ΄ Π·ΠΌΠ΅ΠΉΠΊΠΈ, самого малСнького прилоТСния для Android, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ исслСдования Π½Π° Ρ‚Π΅ΠΌΡƒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², сборка прилоТСния ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с использованиСм Proguard.

БыстрыС ссылки ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΠ΅:
самоС малСнькоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
Π·ΠΌΠ΅ΠΉΠΊΠ°;
ссылки Π½Π° github.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π”ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ HelloWorld Π² Eclipse для Android.
Выглядит, особСнно для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°, вСсьма Π½Π΅ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ. Π’ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ условно, «лишнСго», для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ это всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ· Ρ‡Π΅Π³ΠΎ слСдуСт, ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠžΡ‚ вСрсии ΠΊ вСрсии иСрархия Ρ„Π°ΠΉΠ»ΠΎΠ² постоянно услоТняСтся, Ρ‡Ρ‚ΠΎ простоты ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π΅ добавляСт.
ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ea37b29a09954f96b9b9a552ba9a74f0. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-ea37b29a09954f96b9b9a552ba9a74f0. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ea37b29a09954f96b9b9a552ba9a74f0. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

1. Π΄Π²Π΅ ΠΏΠ°ΠΏΠΊΠΈ с Java-классами (src, gen). src содСрТит исходники, gen β€” сгСнСрированныС классы. Π’ основном, Π² ΠΏΠ°ΠΏΠΊΠ΅ gen Π±Ρ‹Π²Π°Π΅Ρ‚ R.java.
2. Папка для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ libs. Π’ случаС HelloWorld создаётся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° android-support-v4.jar (ΠΈΠ»ΠΈ Π΅Ρ‘ Π±ΠΎΠ»Π΅Π΅ новая вСрсия). Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Π΅ особСнности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ UI), создадут Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ОБ, Ρ‚ΠΎ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки. ΠŸΡ€ΠΈ использовании этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, бСзусловно, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ свой Ρ€Π°Π·ΠΌΠ΅Ρ€. Π’ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ вСрсиям.
3. рСсурсная ΠΏΠ°ΠΏΠΊΠ° (res), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ изобраТСния, настройки стилСй, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ строки, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ. ВсС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· этой ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ID Π² автоматичСски создаваСмом ΠΏΡ€ΠΈ компиляции R.java-Ρ„Π°ΠΉΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ помСщаСтся Π² ΠΏΠ°ΠΏΠΊΡƒ gen. ID ΠΌΠΎΠΆΠ½ΠΎ (Π½ΡƒΠΆΠ½ΠΎ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НапримСр, ΠΈΠΊΠΎΠ½ΠΊΠ° для прилоТСния.
4. asserts слуТит для хранСния всСх Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ ΠΈΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ID. НапримСр, ΡˆΡ€ΠΈΡ„Ρ‚.
5. Π€Π°ΠΉΠ»-манифСст прилоТСния AndroidManifest.xml. Из Π½Π΅Π³ΠΎ ОБ ΡƒΠ·Π½Π°Ρ‘Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅ΡΡ‚ΡŒ Ρƒ прилоТСния ΠΈ Ρ‚.ΠΏ.
6. ic_launcher-web.png β€” Ρ„Π°ΠΉΠ»-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Google Play. ЧСстно говоря, Π½Π΅ знаю, насколько сСйчас это являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ. Π’ ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° обновлял ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Google Play, этого Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ. ΠœΠΈΠ½ΡƒΡ‚ΠΊΠ° ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΌΠ°: Π½Π΅ понимаю, Ρ‡Ρ‚ΠΎ этот Ρ„Π°ΠΉΠ» заслуТил располоТСниС Π² ΠΊΠΎΡ€Π½Π΅.
7. ВСкстовых Ρ„Π°ΠΉΠ»Π° для настроСк ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° project.properties. Π‘Π°ΠΌΡ‹ΠΉ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, частый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ рСдактирования β€” Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ использованиС proguard.
8. ВСкстовый Ρ„Π°ΠΉΠ» для настроСк proguard: proguard-project.txt

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, для написания прилоТСния достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основной класс для Activity ΠΈ AndroidManifest.xml

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ project.properties ΠΈ proguard-project.txt ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Proguard. Π£ Π½Π΅Π³ΠΎ самая главная функция β€” ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ рСвСрс ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ классов ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π΄ΠΎ ΠΎΠ΄Π½ΠΎ-, Π΄Π²ΡƒΡ…Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ….
Родная сборка прилоТСния ΠΎΡ‚ Eclipse достаточно Ρ…ΠΎΡ€ΠΎΡˆΠ°, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ Β«Ρ€ΡƒΡ‡Π½Ρ‹ΠΌΒ» способом создания прилоТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ исчСзнСт класс BuildConfig.java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Β«Π½ΠΈ с Ρ‡Π΅Π³ΠΎΒ» появляСтся Π² ΠΏΠ°ΠΏΠΊΠ΅ gen. Π’Π°ΠΊΠΆΠ΅ я Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ΄Π½ΠΎΠΉ компилятор собираСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ java, Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ с исходниками. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ(ΠΈ Π½Π΅ ΡΠ»ΠΈΡ‚ΡŒ Π² Ρ€Π΅Π»ΠΈΠ· Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ), Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ компиляциСй ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ написано Π² этой ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.
Но ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π’ΡƒΡ‚ bat-Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° коррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡƒΡ‚Π΅ΠΉ Π² Windows, Ρ€Π°Π±ΠΎΡ‚Π° с Proguard, гСнСрация ΠΊΠ»ΡŽΡ‡Π° вынСсСна Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°Ρ‚Π½ΠΈΠΊ.

Π‘Π°ΠΌΠΎΠ΅ малСнькоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Android

android-support-v4.jar Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. РСсурсы ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ res всС ΡƒΠ΄Π°Π»Π΅Π½Ρ‹. Π’ этом случаС ΠΈΠΊΠΎΠ½ΠΊΠ° прилоТСния β€” это Π°Π²Ρ‚ΠΎΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ Android, Π° строки (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прилоТСния) Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ ссылками Π½Π° рСсурсы, Π° Π² явном Π²ΠΈΠ΄Π΅.

ПослС сборки получаСтся aSmall.apk β€” 2832 Π±Π°ΠΉΡ‚Π°, aSmall.unsigned.apk β€” 945, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ΡŠΠ΅Π΄Π°Π΅Ρ‚ сСртификат прилоТСния. dex β€” 404 Π±Π°ΠΉΡ‚Π°, classes-processed.jar β€” 248 Π±Π°ΠΉΡ‚. Π­Ρ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ.

Π—ΠΌΠ΅ΠΉΠΊΠ°

Github
Π’ Π½Π°Ρ‡Π°Π»Π΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΌΠΈΠ½ΠΈ-Excel, Π½ΠΎ я Π½Π΅ Π½Π°ΡˆΡ‘Π» Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² Java, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ exec Π² Javascript. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ интСрСсно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ смоТСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.
Π₯арактСристики ΠΊΠΎΠ΄Π°: ΠΏΠΎΠ»Π½ΠΎΠ΅ количСство строк A.java β€” 86, Π±Π΅Π· import’ΠΎΠ² β€” 69, Β«Ρ„ΠΈΠ·ΠΈΠΊΠ°Β» повСдСния β€” 33 строки (Ρ‡Ρ‚ΠΎ сравнимо с Javascript).
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” полноэкранноС. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ТСстов β€” Π²Π²Π΅Ρ€Ρ…, Π²Π½ΠΈΠ·, Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ.
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ A.java.
A.java Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс V extends View, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выводится Π½Π° ΠΏΠΎΠ»Π½Ρ‹ΠΉ экран, Π² V Π΅ΡΡ‚ΡŒ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ свой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс P (Physics), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ описываСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΈ. Π’ΠΎΡ‚ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ€Π°Π²Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 30 строкам.

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹
ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся Π² ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, основным элСмСнтом становится gv = new V();
Π’ классС gv добавляСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ТСстов ΠΈ запускаСтся Ρ„ΠΈΠ·ΠΈΠΊΡƒ. Π’ Π€ΠΈΠ·ΠΈΠΊΠ΅ инициализируСтся Ρ‚Π°ΠΉΠΌΠ΅Ρ€ (Timer), Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит вычислСниС повСдСния Π·ΠΌΠ΅ΠΉΠΊΠΈ. Runnable ΠΈ ASyncTask ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Π±Ρ‹ Π±Ρ‹Π»ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. Π‘Π°ΠΌΠ° Π·ΠΌΠ΅ΠΉΠΊΠΈ хранится Π² ArrayList. Π‘Ρ‹Π»ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‡Π΅Ρ€Π΅Π· bitArray ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ массив, Π½ΠΎ Π² ArrayList всё ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅ΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ.

Как Π±Ρ‹Π»ΠΎ сэкономлСно мСсто.

Экономия мСста Π² ΠΊΠΎΠ΄Π΅
1. ИспользованиС for, Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ записано нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
Π±Ρ‹Π»ΠΎ

2. ()?: вмСсто слоТных if

3. ΠΈΠ½Ρ€ΠΈΠΌΠ΅Π½Ρ‚ +Β±- совмСстно с if, β€” замСняСт Ρ†Π΅Π»Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ switch-case

4. инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ….
ΠΏΡ€ΠΈΠΌΠ΅Ρ€
Π±Ρ‹Π»ΠΎ (1ая вСрсия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ)

стало (2ая вСрсия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ)

УмСньшСния строк для ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² 1-3 Π½Π΅ Π΄Π°ΡŽΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ apk, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Β«Π΄ΠΎΒ» ΠΈ «послС» Π² jar-Ρ„Π°ΠΉΠ»Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π‘ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ 4 странно Π½Π° получаСтся странно. Если Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ summ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… Π²ΠΎ всСх Ρ‚Ρ€Ρ‘Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… (helloworld, small, snake), ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ использовании Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ получится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° (Ρ†ΠΈΡ„Ρ€Ρ‹ β€” количСство Π±Π°ΠΉΡ‚):

ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. 97fd90e77b1848b29b04ab982f09dd28. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java-97fd90e77b1848b29b04ab982f09dd28. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π° java. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 97fd90e77b1848b29b04ab982f09dd28. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π²Π³Π΅Π½ΠΈΠΉ Β«NageΒ», ΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Π² свободноС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ врСмя. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ задаСшься вопросом Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС?Β», вСдь Π² основном всС Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ самыС основы ΠΈ дальшС ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ заходят. Π’ΠΎΡ‚ послС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° просмотром Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ я Ρ€Π΅ΡˆΠΈΠ» Ρ‡Ρ‚ΠΎ стоит Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, ΠΈ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И Ρ‚Π°ΠΊ, сСйчас ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π² консоли со своими Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями.

Jar-Ρ„Π°ΠΉΠ» ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ использовании Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° apk ΠΈ dex ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго это связано с Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях это даст свои Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. ΠŸΡ€Π°Π²Π΄Π°, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Ρ‚ΡŒ Π’Π°ΡˆΠΈ оТидания.
На этом, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, всё.

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

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

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