ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄

ПишСм ΠΈΠ³Ρ€Ρƒ Π½Π° Python

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π›ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹

Π•ΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ β€” простой ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ. Когда ΡˆΠ°Ρ€ΠΈΠΊ касаСтся стСнки ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠ»ΠΊΠ°, ΠΎΠ½ отскакиваСт Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону. Если ΠΎΠ½ ΡƒΠΏΠ°Π΄Ρ‘Ρ‚ Π½Π° ΠΏΠΎΠ» β€” Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ этого Π½Π΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Π²Π½ΠΈΠ·Ρƒ вдоль ΠΏΠΎΠ»Π° Π»Π΅Ρ‚Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π° Π²Ρ‹ Π΅ΠΉ управляСтС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок. Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΠΎΠ΄ ΡˆΠ°Ρ€ΠΈΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ дольшС. Π—Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ спасСниС ΡˆΠ°Ρ€ΠΈΠΊΠ° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΡ‡ΠΊΠΎ.

Алгоритм

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ³Ρ€Ρ‹, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ сцСнарии повСдСния:

Π₯ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всё это происходит ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° ΡˆΠ°Ρ€ΠΈΠΊ Π»Π΅Ρ‚Π°Π΅Ρ‚, ΠΌΡ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π° мСстС. И ΠΊΠΎΠ³Π΄Π° ΡˆΠ°Ρ€ΠΈΠΊ отскакиваСт ΠΎΡ‚ стСн, это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ класса β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, сам ΡˆΠ°Ρ€ΠΈΠΊ ΠΈ счёт, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° дСйствия Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. ПолС Π½Π°ΠΌ самим ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ β€” для этого Π΅ΡΡ‚ΡŒ ΡƒΠΆΠ΅ готовая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. А ΠΏΠΎΡ‚ΠΎΠΌ Π² этих классах ΠΌΡ‹ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” ΠΎΠ½ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

По коням, пишСм на Python

Для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π°ΠΌ потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ срСду Python. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Начало ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Ρƒ нас появилась Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π² ΠΈΠ³Ρ€Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Tkinter. Она Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π°Π±ΠΎΡ€ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python ΠΈ позволяСт Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ β€” Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΊΡ€ΡƒΠ³ΠΈ ΠΈ ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π°. Π’Π°ΠΊΠΎΠΉ простой Paint, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Python.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ класс Tk(). Он просто Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ, Π½ΠΎ Π±Π΅Π· содСрТимого. Π§Ρ‚ΠΎΠ±Ρ‹ появилось содСрТимоС, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ холст β€” Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΊΠ½Π°. ИмСнно Π½Π° Π½Ρ‘ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ. Π—Π° холст ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ класс Canvas(), поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· этого класса ΠΈ дальшС ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

Если ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, вСдь ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ считаСт ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½Π΅Ρ‚ Π΅Ρ‘ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ искусствСнно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ врСмя двиТСния, Π° для этого Π½Π°ΠΌ понадобится ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Time β€” ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ стандартный.

ПослСднСС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ глобально Π½ΡƒΠΆΠ½ΠΎ, β€” Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ интСрСснСС ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. Π—Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Random β€” ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ случайныС числа ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ всё это Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π° Π½Π° Python:

ΠœΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ всС Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, сдСлали ΠΈ настроили ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ займёмся классами.

Π¨Π°Ρ€ΠΈΠΊ

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ словами, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ ΡˆΠ°Ρ€ΠΈΠΊΠ°. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ:

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°

Π‘Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ β€” сначала опишСм Π΅Ρ‘ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ словами, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘ΠΌ Π² ΠΊΠΎΠ΄. Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°:

МоТно Π±Ρ‹Π»ΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ счёт Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Но здСсь Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ класс, Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ сами ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Ρ‚ΡŒ.

ΠžΡ‚ счёта Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ (ΠΊΡ€ΠΎΠΌΠ΅ конструктора) β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π» Π½Π° касаниС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π» число ΠΎΡ‡ΠΊΠΎΠ² ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» ΠΈΡ… Π½Π° экран:

Π£ нас всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ саму ΠΈΠ³Ρ€Ρƒ. ΠœΡ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ всСх элСмСнтов, ΠΈ Π½Π°ΠΌ остаётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡˆΠ°Ρ€ΠΈΠΊΠ°, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ счёта ΠΈ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Бмысл ΠΈΠ³Ρ€Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡ€ΠΎΠ½ΠΈΡ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊ. Пока этого Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ β€” всё двиТСтся, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠ°Ρ€ΠΈΠΊ ΡƒΠΏΠ°Π» β€” Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сообщСниС ΠΎ ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ выглядит ΠΊΠΎΠ΄ нСпосрСдствСнно самой ΠΈΠ³Ρ€Ρ‹:

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. 0. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-0. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 0. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π§Ρ‚ΠΎ дальшС

На основС этого ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹:

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

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ для кодирования Π½Π° Python

БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько простых ΠΈΠ³Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ распространСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python.

БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько простых ΠΈΠ³Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ распространСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Python?

Python – это извСстный язык программирования. Python ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π›ΡŽΠ±ΠΎΠΉ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Python Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· самых интСрСсных особСнностСй этого языка:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ простых ΠΈΠ³Ρ€ Π² Python

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ нСсколько простых ΠΈΠ³Ρ€ Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ свой ΠΏΡƒΡ‚ΡŒ обучСния!

1. Π˜Π³Ρ€Π° Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π° Π² Python

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ простая тСкстовая ΠΈΠ³Ρ€Π° Π½Π° Python. Π­Ρ‚ΠΎ малСнькая Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для сСбя ΠΈΠ»ΠΈ своих Π΄Ρ€ΡƒΠ·Π΅ΠΉ. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для этой ΠΈΠ³Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π΅Ρ‘! ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами.

2. Π˜Π³Ρ€Π° Π² Pong Π½Π° Python

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· нас ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ ΠΈΠ³Ρ€Π΅ Π² Pong. МногиС ΠΈΠ· нас Π»ΡŽΠ±ΡΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ³Ρ€Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка программирования python!

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ turtle. Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдставляСт собой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, прСдоставляя ΠΈΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ холст.

Если Ρƒ вас Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ pip.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ turtle ΠΈΠ· ΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ!

3. Π˜Π³Ρ€Π° Hungry Snake Π½Π° Python

Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° наша любимая ΠΈΠ³Ρ€Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π΄Π΅Ρ‚ΡŒΠΌΠΈ. На самом Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΈΠ³Ρ€Ρƒ Π² python, импортируя всСго Π΄Π²Π° модуля! Как это ΠΊΡ€ΡƒΡ‚ΠΎ!

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ turtle. Если Ρƒ вас ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ установлСна, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ свой cmd ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ установим случайноС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных чисСл. Π’ вашСм Ρ‚ΠΈΠΏΠ΅ CMD Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ установим ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random2. ΠœΠΎΠ΄ΡƒΠ»ΡŒ random2 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных чисСл. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² cmd ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΠ³Ρ€ΠΎΠΉ!

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

Π’ΠΎΡ‚ ΠΈ всС! Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· простых ΠΈΠ³Ρ€ Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅Π»ΠΈΡ‚ΡŒΡΡ! ΠœΡ‹ любили ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эти ΠΈΠ³Ρ€Ρ‹, ΠΈ ΠΌΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Ρƒ вас Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ!

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

НадоСл JavaScript β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ Python

Мой ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€Ρ‹ Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» Π½Π° Brython

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

«Погоди, Ρ‡Ρ‚ΠΎ?Β» – Π΄ΡƒΠΌΠ°ΡŽ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

Π’ смыслС «просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅Β»?

ВсС Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JavaScript.

Ну, Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠ΅Π³ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ сайта. ВзглянитС, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ для сСбя Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ обсудим ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² JavaScript.

Знакомство с Brython

Brython β€” это рСализация Python3, написанная Π½Π° JavaScript, которая позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python для Π²Π΅Π±Π°.

По сути, это JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ваш ΠΊΠΎΠ΄ Π½Π° Python Π² эквивалСнтный JS ΠΈ исполняСт Π΅Π³ΠΎ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ написаниС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Python Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΡ€ΡƒΡ‚ΠΎ, я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Β«Π—ΠΌΠ΅ΠΉΠΊΠΈΒ» Π½Π° Brython

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π’ΠΎΡ‚ ссылка Π½Π° ΠΌΠΎΠΉ сайт, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ вСрсии Β«Π—ΠΌΠ΅ΠΉΠΊΠΈΒ» Π½Π° JavaScript ΠΈ Brython. А Π²ΠΎΡ‚ ссылка Π½Π° GitHub c исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Brython, я Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Β«Π—ΠΌΠ΅ΠΉΠΊΡƒΒ».

Π’Π°ΠΊ ΠΊΠ°ΠΊ я Π½Π΅ спСциалист ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Canvas Π² HTML ΠΈ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ³Ρ€, я Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту JavaScript-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. Когда-Ρ‚ΠΎ я ΡƒΠΆΠ΅ создавал свою Β«Π—ΠΌΠ΅ΠΉΠΊΡƒΒ» Π½Π° основС Canvas, Π½ΠΎ эта рСализация Π±ΠΎΠ»Π΅Π΅ аккуратная ΠΈ компактная.

А Π΅Ρ‰Π΅ Π°Π²Ρ‚ΠΎΡ€ написал Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚. Надо ΠΎΡ‚Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅ ΠšΡ€ΠΈΡΡƒ Π”Π΅Π»Π΅ΠΎΠ½Ρƒ, это ΠΎΡ‡Π΅Π½ΡŒ впСчатляСт.

Π˜Ρ‚Π°ΠΊ, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠšΡ€ΠΈΡΠ° подсчСт ΠΎΡ‡ΠΊΠΎΠ² ΠΈ сохранСниС Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ» интСрфСйс (Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠ°ΡƒΠ·Ρ‹ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ с инструкциями). Π—Π°Ρ‚Π΅ΠΌ я ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» ΠΈΠ³Ρ€Ρƒ Π½Π° Brython.

JavaScript оказался Ρ‚Π°ΠΊΠΈΠΌ, ΠΈ я Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ здСсь, ΠΏΠΎΡ‚ΠΎΠΌΡƒ наша Ρ†Π΅Π»ΡŒ – ΡΡ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Brython.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π° Brython Π±Ρ‹Π»Π° «дословным ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌΒ» с JS, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» подсчСта ΠΎΡ‡ΠΊΠΎΠ²) Π±Ρ‹Π»ΠΈ написаны нСпосрСдствСнно Π½Π° Brython, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° JS – Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° отличия.

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π˜Ρ‚Π°ΠΊ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Π² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… понятиях Brython

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ brython.js

Для использования Brython Π½Π΅ трСбуСтся установка. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ скрипт Π²Π½ΡƒΡ‚Ρ€ΠΈ head :

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ ΠΏΠΎΠ΄ Android Π½Π° Python Π½Π° Π±Π°Π·Π΅ Kivy. ΠžΡ‚ А Π΄ΠΎ Π―: ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΈ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π§Π°ΡΡ‚ΡŒ 1

НСкотороС врСмя Ρ‚ΠΎΠΌΡƒ Π½Π°Π·Π°Π΄ я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° Python ΠΏΠΎΠ΄ Android. Π’Π°ΠΊΠΎΠΉ странный для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ обусловлСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ я люблю Python ΠΈ люблю Android, Π° Π΅Ρ‰Ρ‘ люблю Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ (Π½Ρƒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½Π΅ самоС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅). Π’ качСствС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Kivy β€” фактичСски, Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½ΠΎ ΠΎΠ½ ΠΌΠ½Π΅ ΠΎΡ‡Π΅Π½ΡŒ понравился. Однако, ΠΏΠΎ Π½Π΅ΠΌΡƒ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Π½Π΅Ρ‚, докумСнтация отличная, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Ρ‘ нСдостаточно), особСнно Π½Π° русском языкС, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΈΡ… Ρ‚ΠΎ Π»ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π΄Π΅Π»Π°Π», Ρ‚ΠΎ Π»ΠΈ Π½Π΅ счёл Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Ну Π° я счёл πŸ™‚ И этот пост Ρ‚ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

Под ΠΊΠ°Ρ‚ΠΎΠΌ я расскаТу ΠΎΠ±ΠΎ всСх этапах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ простая идСя ΠΈ ΠΊΠ°ΠΊ для этого ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… камнях ΠΈ Π±Π°Π³Π°Ρ…, ΠΎ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ πŸ™‚ ЦСль β€” ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ тСкстС основныС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ, Ρ€Π΅ΡˆΠΈΠ²ΡˆΠ΅ΠΌΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС ΠΈΠ³Ρ€Ρ‹ Pong ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°, Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΡƒΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ StackOverflow ΠΈ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ часы Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ дСлаСтся Π·Π° ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚, Ссли знаСшь, ΠΊΠ°ΠΊ.

0. Если Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΠ»Ρ‹ΡˆΠΈΡ‚Π΅ ΠΎ Kivy.

… Ρ‚ΠΎ всё зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π»ΡŽΠ±ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Python ΠΈ Android, ΠΈ интСрСсно Π»ΠΈ Π²Π°ΠΌ Π² этом Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Если Π½Π΅Ρ‚ β€” ΠΏΡ€ΠΎΡ‰Π΅ Π·Π°Π±ΠΈΡ‚ΡŒ πŸ™‚ А Ссли Π΄Π°, Ρ‚ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π³Π°ΠΉΠ΄ΠΎΠ², ΠΈ ΡƒΠΆΠ΅ упомянутого ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° ΠΏΠΎ ΠΈΠ³Ρ€Π΅ Pong β€” это даст Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ ΠΈ Π΅Π³ΠΎ возмоТностях. Π― ΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΡΡ‚ΠΎΠ»ΡŒ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ… (Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, для понимания Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚) ΠΈ сразу ΠΏΠΎΠΉΠ΄Ρƒ дальшС. Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΎ вступлСниС πŸ™‚

1. НСмного ΠΎ ΠΌΠΎΠ΅ΠΉ ΠΈΠ³Ρ€Π΅

Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½Π° Π±Ρ‹Π»Π° идСя. МнС Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ достаточно простоС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ возмоТности Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, Π½ΠΎ ΠΈ достаточно интСрСсноС ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈ программирования (это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° это Π½Π΅ СдинствСнная Ρ†Π΅Π»ΡŒ β€” это Π΅Ρ‰Ρ‘ Π»ΡƒΡ‡ΡˆΠ΅). Π― Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽ интСрфСйсы, Π½ΠΎ Π½Π΅ ΡƒΠΌΠ΅ΡŽ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, поэтому ΠΈΠ³Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π±Ρ‹Ρ‚ΡŒ простая графичСски, ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ тСкстовая. И Ρ‚ΡƒΡ‚ Ρ‚Π°ΠΊ ΡƒΠΆ слоТилось, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ сайт с Ρ†ΠΈΡ‚Π°Ρ‚Π°ΠΌΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ я ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π» свой ΠΏΡƒΡ‚ΡŒ Π² web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ (я ΠΎ Π½Ρ‘ΠΌ Π΄Π°ΠΆΠ΅ писал Π½Π° Π₯Π°Π±Ρ€Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ идСя Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° такая: ΠΈΠ³Ρ€Π°-Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π° Β«Π£Π³Π°Π΄Π°ΠΉ Ρ†ΠΈΡ‚Π°Ρ‚ΡƒΒ». Π’ русскоязычном Google Play Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ, Π° Π² англоязычном Π±Ρ‹Π»Π° ΠΏΠ°Ρ€Π° ΠΏΠΎΠ΄Π΅Π»ΠΎΠΊ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ качСства с сотнСй скачиваний.

ΠŸΠΎΡ‡Ρ‚ΠΈ сразу ΠΆΠ΅ стало понятно, Ρ‡Ρ‚ΠΎ просто Ρ‚Π°ΠΊ ΠΎΡ‚Π³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ†ΠΈΡ‚Π°Ρ‚Ρƒ Π·Π° Ρ†ΠΈΡ‚Π°Ρ‚ΠΎΠΉ β€” скучно. Π’Π°ΠΊ появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Β«Ρ„ΠΈΡˆΠΊΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² ΠΈΡ‚ΠΎΠ³Π΅, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ это Π±Ρ‹Π»ΠΈ тСматичСскиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ†ΠΈΡ‚Π°Ρ‚, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ) ΠΈ Π±Π°Π»Π»Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π·Π° ΠΎΡ‚Π³Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ†ΠΈΡ‚Π°Ρ‚ ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈ тратятся Π½Π° подсказки ΠΈ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌ), Π° Ρ‚Π°ΠΊΠΆΠ΅ статистика, достиТСния ΠΈ ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠ΅.

Π’Π°ΠΊ всё Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ (кликабСльно):
ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Ну Π»Π°Π΄Π½ΠΎ, Π»Π°Π΄Π½ΠΎ, большС Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ уТас πŸ™‚ ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ выглядит сСйчас (Ρ‚ΠΎΠΆΠ΅ кликабСльно, скрины взяты с Google Play):
ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΆΠ΅ экрана…

2. Kivy Ρ‚ΠΎΡ€ΠΌΠΎΠ· ΠΈΠ»ΠΈ я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ дСлаю Π½Π΅ Ρ‚Π°ΠΊ?

Один ΠΌΠΎΠΉ Π΄Ρ€ΡƒΠ³ Π»ΡŽΠ±ΠΈΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ вопросы Β«Π΄Π°Β» πŸ™‚ На самом Π΄Π΅Π»Π΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Π² Kivy Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, созданиС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»ΠΎ нСльзя ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Об этом я ΠΈ расскаТу.

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

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΌΠΎΠΈΠΌ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΎ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, ΠΈ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Ссли ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ всС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° StartScreen, Ρ‚ΠΎ всё (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ достаточно быстро. Однако ΠΆΠ΅, Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… Π½ΡƒΠΆΠ½ΠΎ пСриодичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ (хотя Π±Ρ‹ Ρ‚ΠΎ ΠΆΠ΅ количСство ΠΎΡ‚Π³Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ†ΠΈΡ‚Π°Ρ‚). Π”Π° ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² я ΡƒΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π». ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ это, Π½ΠΎ я Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСд ΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ.

Π‘Π½Π°Ρ‡Π°Π»Π° стоило ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² создании Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², поэтому я Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚ набросал ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π²Π° экрана, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… гСнСрировался Π½Π°Π±ΠΎΡ€ строк ΠΈΠ· Π»Π΅ΠΉΠ±Π»Π° ΠΈ чСкбокса количСством 50 ΡˆΡ‚. πŸ™‚

Запустил Π½Π° своём ΡΡ‚Π°Ρ€Π΅Π½ΡŒΠΊΠΎΠΌ Moto G (gen3) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»:

И Π΄Π°Π»Π΅Π΅ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄ΡƒΡ…Π΅. Поиск ΠΏΠΎ этому вопросу Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Π», поэтому я обратился ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. И ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚: Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅, особСнно Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ содСрТат. Для создания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списков Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ RecycleViewΒ». Π—Π΄Π΅ΡΡŒ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, вСдь описаниС RecycleView Π΅ΡΡ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π”Π°, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅ΡΡ‚ΡŒ, Π½ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ способСн ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ всю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π½Ρ‘Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ инструмСнт Π±Ρ‹Π²Π°Π΅Ρ‚ нСпросто, особСнно Ссли ΠΎΠ½ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ описан Π² контСкстС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ ΠΎΠ½ описан πŸ™‚

Π‘ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 100 Ρ€Π°Π· быстрСС. ВпСчатляСт, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ слСдуСт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ RecycleView β€” Π½Π΅ панацСя. Он Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта зависит ΠΎΡ‚ содСрТимого (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Label, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мСняСтся Π² зависимости ΠΎΡ‚ количСства тСкста).

3. БСрвисы. Автозапуск ΠΈ пСрСзапуск

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я столкнулся, Π½Π΅ поддавалась Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ‚Π°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, Ρ‡Ρ‚ΠΎ я ΡƒΠΆΠ΅ ΠΌΠ°Π»ΠΎΠ΄ΡƒΡˆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Π» ΡΡ‡Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈ Π·Π°Π±ΠΈΡ‚ΡŒ πŸ™‚ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° с сСрвисами (Π² Android Ρ‚Π°ΠΊ называСтся процСссы, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅). Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвис Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно β€” Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ докумСнтация, Π½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ. Однако, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΎΡ‚ сСрвиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ запускаСтся автоматичСски ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π΅ пСрСзапускаСтся, Ссли Β«Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒΒ» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ свайпом ΠΈΠ· диспСтчСра Π·Π°Π΄Π°Ρ‡? По-ΠΌΠΎΠ΅ΠΌΡƒ, Π½Π΅Ρ‚.

На Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Π±Ρ‹Π»Π° всСго лишь ΠΎΠ΄Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ wiki, Π½ΠΎ ΠΎΠ½Π°, Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ Β«Starting Kivy service on bootupΒ», Π½Π° самом Π΄Π΅Π»Π΅ всСго лишь рассказывала, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ Π΅Π³ΠΎ сСрвис (Π΄Π°, Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅). Π’Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ я, Π² ΠΈΡ‚ΠΎΠ³Π΅, пСрСписал, Π° здСсь расскаТу подробности.

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСго-Ρ‚ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСриодичСски Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Π»ΠΎΠ³ строку (этим ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±Π°Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΠ·-Π·Π° особСнностСй самого сСрвиса).

Из прилоТСния ΠΌΡ‹ запускаСм Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ основного класса ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ PyJnius:

Если APK собран ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ запускС прилоТСния сСрвис Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ этого нСдостаточно.

Для Π½Π°Ρ‡Π°Π»Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ пСрСзапускался ΠΏΡ€ΠΈ остановкС прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ снятии Π΅Π³ΠΎ ΠΈΠ· диспСтчСра Π·Π°Π΄Π°Ρ‡). ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ startForeground, Π½ΠΎ это ΡƒΠΆΠ΅ Π½Π΅ совсСм Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ πŸ™‚ Для Π½Π΅Π³ΠΎ потрСбуСтся, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ β€” это Π½Π΅ всСгда ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„Π»Π°Π³ START_STICKY, Π½ΠΎ ΠΌΡ‹ ΠΆΠ΅ пишСм Π½Π° Python, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ β€” ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ PyJnius ΠΎΠ½Π° ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ.

Π£Ρ€Π°, сСрвис рСстартится. Всё? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Ρ‚ πŸ™‚ ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚ΡƒΡ‚ ΠΆΠ΅ валится с ошибкой:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ onStartCommand(Intent intent, int flags, int startId), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послС пСрСзапуска intent Ρƒ нас null. Π§Ρ‚ΠΎ ΠΆ, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΈ Π΅Ρ‘:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция nativeStart() Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹Ρ… Extras. К соТалСнию, Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ… ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ выглядит это Ρ‚Π°ΠΊ:

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ автозапуску сСрвиса ΠΏΡ€ΠΈ запускС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. ПослС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ это Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ‰Π΅. (На самом Π΄Π΅Π»Π΅ ΠΆΠ΅ всё Π±Ρ‹Π»ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” я ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± этом Π½Π΅ Π±Ρ‹Π»ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠ³Π΄Π΅, ΠΈ сами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с вопросом пСрСзапуска, я понял, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.)

Для Π½Π°Ρ‡Π°Π»Π° понадобится Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ RECEIVE_BOOT_COMPLETED β€” это просто. А Π·Π°Ρ‚Π΅ΠΌ β€” BroadcastReceiver, Π΅Π³ΠΎ придётся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² AndroidManifest Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ πŸ™‚

РСшСниС для запуска прилоТСния (Π½Π΅ сСрвиса) выглядит Ρ‚Π°ΠΊ:

Π‘Π½Π°Ρ‡Π°Π»Π° я попытался просто ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ для сСрвиса:

Π”ΡƒΠΌΠ°ΡŽ, Π²Π°ΠΌ ΡƒΠΆΠ΅ понятно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚Π΅Ρ… самых Extras. МнС ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ± этом Π±Ρ‹Π»ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π΅ΠΎΡ‚ΠΊΡƒΠ΄Π°. Но Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ:

Локализация ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½ΠΎΡΡ‚ΡŒ

Π’ Ρ†Π΅Π»ΠΎΠΌ, для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ gettext, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅ β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ lang, Π² Π½Π΅ΠΉ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ язык (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, en.py ΠΈ ru.py), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ всС слова ΠΈ Ρ„Ρ€Π°Π·Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…/констант, ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

БтатичСская пСрСмСнная использована для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ языковыС константы Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² kv-Ρ„Π°ΠΉΠ»Π΅:

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

ПишСм ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ Π½Π° Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ pygame

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.
Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ здСсь написано для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π”Π°Π²Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π² качСствС ΠΈΠ³Ρ€ΠΎΠ΄Π΅Π»Π°, ΠΈ Π½Π΅Π΄Π°Π²Π½ΠΎ Π²Ρ‹ΠΏΠ°Π» случай ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Python ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ давнюю ΠΌΠ΅Ρ‡Ρ‚Ρƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€?

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€(platformer)β€” ΠΆΠ°Π½Ρ€ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… основной Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ процСсса являСтся ΠΏΡ€Ρ‹Π³Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ, лазаньС ΠΏΠΎ лСстницам, собираниС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ², ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ уровня.
Π’ΠΈΠΊΠΈ

Одними ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΠΈΠ³Ρ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΆΠ°Π½Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Β«Super Mario BrothersΒ» ΠΈ Β«Super Meat BoyΒ». Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ срСднСС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π‘Π°ΠΌΠΎΠ΅ β€” самоС Π½Π°Ρ‡Π°Π»ΠΎ.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ python Π²Π΅Ρ‚ΠΊΠΈ 2.Ρ…, с 3.Ρ… ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ запуска ниТСописанных скриптов!

НавСрноС, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ³Ρ€Ρ‹, Π΄Π° ΠΈ всС прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ pygame Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π˜Π³Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡΒ» Π² Ρ†ΠΈΠΊΠ»Π΅ ( while 1), ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ всё (Ρ„ΠΎΠ½, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, монстров, Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ сообщСния ΠΈ Ρ‚.Π΄). Π’Π°ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ рисованиС ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚.Π΅. Ссли спСрва Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ гСроя, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°Π»ΠΈΡ‚ΡŒ Ρ„ΠΎΠ½, Ρ‚ΠΎ гСроя Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅ это Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

Запустив этот ΠΊΠΎΠ΄, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ, Π·Π°Π»ΠΈΡ‚ΠΎΠ΅ зСлСнСньким Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.
(ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° кликабСльна)

Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ, ΠΈΠ΄Ρ‘ΠΌ дальшС.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ.

А ΠΊΠ°ΠΊ Π±Π΅Π· Π½Π΅Π³ΠΎ? Под словом Β«ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒΒ» Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ пространства, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ всякой β€” всячиной, ΠΈ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ наш пСрсонаТ.

Для построСния уровня создадим Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив m Π½Π° n. КаТдая ячСйка (m,n) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ· сСбя ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π² сСбС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π±Ρ‹Ρ‚ΡŒ пустым. ΠœΡ‹ Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°Ρ… Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ константы

Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ объявлСниС уровня Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main

И Π² основной Ρ†ΠΈΠΊΠ» Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’.Π΅. ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив level, ΠΈ, Ссли Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ символ Β«-Β», Ρ‚ΠΎ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ (x * PLATFORM_WIDTH, y * PLATFORM_HEIGHT), Π³Π΄Π΅ x,y β€” индСкс Π² массивС level

Запустив, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°ΠΆ

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΡƒΠ±ΠΈΠΊΠΈ Π½Π° Ρ„ΠΎΠ½Π΅ β€” это ΠΎΡ‡Π΅Π½ΡŒ скучно. Нам Π½ΡƒΠΆΠ΅Π½ наш пСрсонаТ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π³Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Ρ‹Π³Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ класс нашСго гСроя.

Для удобства, Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нашСго пСрсонаТа Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ player.py

Π§Ρ‚ΠΎ Ρ‚ΡƒΡ‚ интСрСсного?
Начнём с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создаём Π½ΠΎΠ²Ρ‹ΠΉ класс, Π½Π°ΡΠ»Π΅Π΄ΡƒΡΡΡŒ ΠΎΡ‚ класса pygame.sprite.Sprite, Ρ‚Π΅ΠΌ самым Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽ всС характСристики спрайта.
CΠΏΡ€Π°ΠΉΡ‚ β€” это двиТущССся растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π˜ΠΌΠ΅Π΅Ρ‚ ряд ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств.

self.rect = Rect(x, y, WIDTH, HEIGHT), Π² этой строчкС ΠΌΡ‹ создаСм фактичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ нашСго пСрсонаТа, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ гСроя, Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° столкновСния. Но ΠΎΠ± этом Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ update(self, left, right)) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания повСдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ update(*args) β†’ None. ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… спрайтов.

ΠœΠ΅Ρ‚ΠΎΠ΄ draw(self, screen) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° пСрсонаТа Π½Π° экран. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΡƒΠ±Π΅Ρ€Π΅ΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ интСрСсный способ отобраТСния гСроя.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ нашСго гСроя Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ уровня Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ гСроя ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΅Π³ΠΎ пСрСмСщСния.

Π’ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ событий Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’.Π΅. Если Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«Π»Π΅Π²ΠΎΒ», Ρ‚ΠΎ ΠΈΠ΄Ρ‘ΠΌ Π²Π»Π΅Π²ΠΎ. Если отпустили β€” останавливаСмся. Π’Π°ΠΊ ΠΆΠ΅ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Β«ΠΏΡ€Π°Π²ΠΎΒ»

Π‘Π°ΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ вызываСтся Ρ‚Π°ΠΊ: (добавляСм послС пСрСрисовки Ρ„ΠΎΠ½Π° ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ)

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Но, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, наш сСрый Π±Π»ΠΎΠΊ слишком быстро пСрСмСщаСтся, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² количСствС ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду. Для этого послС опрСдСлСния уровня Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€

И Π² Π½Π°Ρ‡Π°Π»ΠΎ основного Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Завис Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅

Π”Π°, наш Π³Π΅Ρ€ΠΎΠΉ Π² Π±Π΅Π·Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠ½ завис Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅.
Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΈ возмоТности ΠΏΡ€Ρ‹Π³Π°Ρ‚ΡŒ.

И Ρ‚Π°ΠΊ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ player.py

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ констант

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄ _init_ добавляСм строки:

ДобавляСм Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ update
def update(self, left, right, up):
И Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° добавляСм:

И ΠΏΠ΅Ρ€Π΅Π΄ строчкой self.rect.x += self.xvel
ДобавляСм

И Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
ПослС строчки left = right = False
Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ up

Π’ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ событий Π΄ΠΎΠ±Π°Π²ΠΈΠΌ

И ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° update, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ up:
hero.update(left, right)
Π½Π°

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создали силу Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ нас Π²Π½ΠΈΠ·, постоянно наращивая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Ссли ΠΌΡ‹ Π½Π΅ стоим Π½Π° Π·Π΅ΠΌΠ»Π΅, ΠΈ ΠΏΡ€Ρ‹Π³Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»Π΅Ρ‚Π΅ ΠΌΡ‹ Π½Π΅ ΡƒΠΌΠ΅Π΅ΠΌ. А ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π²Π΅Ρ€Π΄ΠΎ Π²ΡΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, поэтому Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ наш Π³Π΅Ρ€ΠΎΠΉ ΠΏΠ°Π΄Π°Π΅Ρ‚ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ видимости.
ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π’ΡΡ‚Π°Π½ΡŒ ΠΎΠ±Π΅ΠΈΠΌΠΈ Π½ΠΎΠ³Π°ΠΌΠΈ Π½Π° зСмлю свою.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π° Π·Π΅ΠΌΠ»Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π²Π΅Ρ€Π΄ΠΎΠΉ повСрхности? ΠžΡ‚Π²Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° пСрСсСчСниС, Π½ΠΎ для этого ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ созданиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» blocks.py, ΠΈ пСрСнСсСм Π² Π½Π΅Π³ΠΎ описаниС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π”Π°Π»ΡŒΡˆΠ΅ создадим класс, Π½Π°ΡΠ»Π΅Π΄ΡƒΡΡΡŒ ΠΎΡ‚ pygame.sprite.Sprite

Π’ΡƒΡ‚ Π½Π΅Ρ‚ Π½ΠΈ Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ ΡƒΠΆΠ΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ, ΠΈΠ΄Ρ‘ΠΌ дальшС.

Π’ основной Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ измСнСния, ΠΏΠ΅Ρ€Π΅Π΄ описаниСм массива level Π΄ΠΎΠ±Π°Π²ΠΈΠΌ

Π“Ρ€ΡƒΠΏΠΏΠ° спрайтов entities Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отобраТСния всСх элСмСнтов этой Π³Ρ€ΡƒΠΏΠΏΡ‹.
Массив platforms Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° пСрСсСчСниС с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Π’.Π΅. создаём экзСмплр класса Platform, добавляСм Π΅Π³ΠΎ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ спрайтов entities ΠΈ массив platforms. Π’ entities, Ρ‡Ρ‚ΠΎΠ±Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ отобраТСния. Π’ platforms Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ массив Π±Π»ΠΎΠΊΠΎΠ² Π½Π° пСрСсСчСниС с ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ.

Π”Π°Π»ΡŒΡˆΠ΅, вСсь ΠΊΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ уровня выносим ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°.

И Ρ‚Π°ΠΊ ΠΆΠ΅ строчку
hero.draw(screen) # ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
Π—Π°ΠΌΠ΅Π½ΠΈΠΌ Π½Π°

Запустив, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈ Ρ‡Π΅Π³ΠΎ Π½Π΅ измСнилось. Π’Π΅Ρ€Π½ΠΎ. Π’Π΅Π΄ΡŒ ΠΌΡ‹ Π½Π΅ провСряСм нашСго гСроя Π½Π° столкновСния. Начнём это ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ.

Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ player.py

УдаляСм ΠΌΠ΅Ρ‚ΠΎΠ΄ draw, ΠΎΠ½ Π½Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½. И добавляСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ collide

Π’ этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° пСрСсСчСниС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ гСроя ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ΅ имССтся, Ρ‚ΠΎ Π²Ρ‹ΡˆΠ΅ описанной Π»ΠΎΠ³ΠΈΠΊΠ΅ происходит дСйствиС.

Ну, ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ это всё происходило, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄.
ИзмСним число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° update, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ выглядит Ρ‚Π°ΠΊ:

И Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ² Π² основном Ρ„Π°ΠΉΠ»Π΅.

Π’.Π΅. ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΠ»ΠΈ гСроя Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Π½Π° пСрСсСчСниС ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΠ»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, снова ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Π½Π° пСрСсСчСниС ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

Π’ΠΎΡ‚, Ρ‡Ρ‚ΠΎ получится, ΠΊΠΎΠ³Π΄Π° запустим.

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π€Ρƒ[Ρƒ]! ДвиТущийся ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ β€” Π½Π΅ красиво!

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ приукрасим нашСго ΠœΠ°Ρ€ΠΈΠΎΠ‘ΠΎΡ.

НачнСм с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Для этого Π² Ρ„Π°ΠΉΠ»Π΅ blocks.py сдСлаСм нСбольшиС измСнСния.

Π—Π°ΠΌΠ΅Π½ΠΈΠΌ Π·Π°Π»ΠΈΠ²ΠΊΡƒ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, для этого строчку
self.image.fill(Color(PLATFORM_COLOR))
Π—Π°ΠΌΠ΅Π½ΠΈΠΌ Π½Π°

ΠœΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ вмСсто сплошного Ρ†Π²Π΅Ρ‚Π°. РазумССтся, Ρ„Π°ΠΉΠ» Β«platform.pngΒ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«blocksΒ», которая Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ.

Π’ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ

ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π‘ΠΏΠ΅Ρ€Π²Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π±Π»ΠΎΠΊ констант.

Π’ΡƒΡ‚, Π΄ΡƒΠΌΠ°ΡŽ, понятно, анимация Ρ€Π°Π·Π½Ρ‹Ρ… дСйствий гСроя.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__

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

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ смСну Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΉ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ update.

Вуаля!
ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π‘ΠΎΠ»ΡŒΡˆΠ΅, Π½ΡƒΠΆΠ½ΠΎ большС мСста

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΎΠΊΠ½Π° ΠΌΡ‹ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π΅ΠΌ созданиСм динамичСской ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

Для этого создадим класс Camera

Π”Π°Π»Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ экзСмпляр ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄ основным Ρ†ΠΈΠΊΠ»ΠΎΠΌ:

ΠœΡ‹ создали Π²Π½ΡƒΡ‚Ρ€ΠΈ большого ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ:

мСньший ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΎΠΊΠ½Π°.

МСньший ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ цСнтрируСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ пСрсонаТа(ΠΌΠ΅Ρ‚ΠΎΠ΄ update), ΠΈ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ Π² мСньшСм ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅ (ΠΌΠ΅Ρ‚ΠΎΠ΄ apply), Π·Π° счСт Ρ‡Π΅Π³ΠΎ создаётся Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ двиТСния ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ рисованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π—Π°ΠΌΠ΅Π½ΠΈΠΌ строчку
entities.draw(screen) # ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
На

И ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Π’ΠΎΡ‚, собствСнно, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. image loader. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π½Π° python исходный ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ, ссылка Π½Π° GitHub

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части, Ссли Π±ΡƒΠ΄Π΅Ρ‚ вострСбовано сообщСством, ΠΌΡ‹ создадим свой Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ с блэкдТСком ΠΈ ΡˆΠ»ΡŽΡ…Π°ΠΌΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, монстрами, Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ, ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, принцСссой.

upd pygame ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΡΡŽΠ΄Π°, спасибо, Chris_Griffin Π·Π° Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
upd1 Вторая Ρ‡Π°ΡΡ‚ΡŒ

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

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

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