Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ для кодирования Π½Π° 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, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅Π»ΠΈΡ‚ΡŒΡΡ! ΠœΡ‹ любили ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эти ΠΈΠ³Ρ€Ρ‹, ΠΈ ΠΌΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Ρƒ вас Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ!

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

ПишСм ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ Π½Π° python

БСгодня ΠΌΡ‹ создадим всСм ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ камСнь, Π½ΠΎΠΆΠ½ΠΈΡ†Ρ‹, Π±ΡƒΠΌΠ°Π³Π°. Π’ этом Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ЯП python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° tkinter, Π½ΠΎ Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

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

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, это Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ структура, окошко, Ρƒ мСня ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаём нСизмСняСмоС ΠΎΠΊΠ½ΠΎ 500 Π½Π° 500 с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ «КамСнь, Π½ΠΎΠΆΠ½ΠΈΡ†Ρ‹, Π±ΡƒΠΌΠ°Π³Π°Β» ΠΈ Π±Π΅Π»Ρ‹ΠΌ Ρ„ΠΎΠ½ΠΎΠΌ. ИмСнно Π² это окошко ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΠΈ, счСтчики ΠΈ Ρ‚.Π΄.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² наш ΠΌΠ΅Ρ‚ΠΎΠ΄ startUI Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΠΈΠ΅ строчки:

Π­Ρ‚ΠΈ 7 строчСк добавят Π² нашС ΠΎΠΊΠ½ΠΎ 3 ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Ρ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡŽΡ‚. ΠœΡ‹ исправим это ΠΏΠΎΠ·ΠΆΠ΅.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ свой Π²Ρ‹Π±ΠΎΡ€, наТимая Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· 3 ΠΊΠ½ΠΎΠΏΠΎΠΊ, это ΠΊΡ€ΡƒΡ‚ΠΎ, Π½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈΠΌΠ΅Π½Π½ΠΎ для этого Π½ΡƒΠΆΠ΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random.

А Π²ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€, ΠΈ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΡ‚ΠΎ ΠΆΠ΅ Π²Ρ‹ΠΈΠ³Ρ€Π°Π» Π² этом Ρ€Π°ΡƒΠ½Π΄Π΅. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π§Ρ‚ΠΎ Ρ‚ΡƒΡ‚ происходит?

Всё ΠΎΡ‡Π΅Π½ΡŒ просто. Π“Ρ€ΡƒΠ±ΠΎ говоря, Ссли ΠΈΠ³Ρ€ΠΎΠΊ Π½Π°ΠΆΠΌΠ΅Ρ‚ камСнь, отправится 1, Ссли Π½ΠΎΠΆΠ½ΠΈΡ†Ρ‹, Ρ‚ΠΎ 2, Π° Ссли Π±ΡƒΠΌΠ°Π³Π°, Ρ‚ΠΎ 3, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отправится, Π½ΠΎ ΠΈ вывСдСтся Π² консоль.
На счСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Он свой Π²Ρ‹Π±ΠΎΡ€ Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ ΠΈΠ΄Ρ‘Ρ‚.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΈ для этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Label. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² startUI Ρ‚Π°ΠΊΠΈΠ΅ строчки:

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ надпись, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°ΡƒΠ½Π΄Π° ΠΈ надпись со статистикой.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ 3 счСтчика:

1. ΠŸΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠΉ
2. ПобСд
3. НичСй

Для этого всС Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ startUI Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ строку:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² классС main создаСм ΠΌΠ΅Ρ‚ΠΎΠ΄ btn_click, ΠΈ пишСм Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

НСдолго ΠΌΡƒΠ·Ρ‹ΠΊΠ° ΠΈΠ³Ρ€Π°Π»Π°. Π’Π°ΠΌ ΠΆΠ΅, Π² btn_click, удаляСм

БобствСнно всё, Π½Π° этом созданиС Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ. Всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ.

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

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

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

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

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

Алгоритм

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

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

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

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

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

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

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

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

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

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

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

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

Π¨Π°Ρ€ΠΈΠΊ

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

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

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

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

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

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

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

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

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

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

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

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

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

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ 2D ΠΈΠ³Ρ€Ρƒ Π½Π° Python с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Arcade

ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ дСлится с Π²Π°ΠΌΠΈ интСрСсными Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ ΠΏΡ€ΠΎ ΠΏΠΈΡ‚ΠΎΠ½Ρ‡ΠΈΠΊ. БСгодня Π²ΠΎΡ‚ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с 2D ΠΈΠ³Ρ€Π°ΠΌΠΈ. Π­Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ проходят Ρƒ нас Π½Π° курсС Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ PythonΒ», Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ интСрСсно это ΡƒΠΆ Ρ‚ΠΎΡ‡Π½ΠΎ.

Python β€” Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠΉΡΡ язык для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Он Ρ‚Π°ΠΊΠΆΠ΅ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ β€œΠΏΡ€ΠΎΡΡ‚ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒβ€, Π° Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Arcade β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python для создания 2D ΠΈΠ³Ρ€, с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ вхоТдСния, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π² ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€ΡƒΠΊΠ°Ρ…. Π’ этом ΡΡ‚Π°Ρ‚ΡŒΠ΅ я объясню, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Python ΠΈ Arcade для программирования ΠΈΠ³Ρ€.

Π― Π½Π°Ρ‡Π°Π» Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Arcade послС прСподавания Π°Π·ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PyGame студСнтам. Π― ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π» PyGames Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ 10 Π»Π΅Ρ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ProgramArcadeGames.com для обучСния ΠΎΠ½Π»Π°ΠΉΠ½. PyGames отличная, Π½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ я понял, Ρ‡Ρ‚ΠΎ устал Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ Π±Π°Π³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ фиксятся.

МСня бСспокоило ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠ°ΠΊ событийный Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ пользовались. И Π±Ρ‹Π» Ρ†Π΅Π»Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я объяснял, ΠΏΠΎΡ‡Π΅ΠΌΡƒ y-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. PyGames обновлялась Ρ€Π΅Π΄ΠΊΠΎ ΠΈ Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Π½Π° старой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ SDL 1, Π° Π½Π΅ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ соврСмСнном Π²Ρ€ΠΎΠ΄Π΅ OpenGL. На свСтлоС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ я Π½Π΅ рассчитывал.

Π’ ΠΌΠΎΠΈΡ… ΠΌΠ΅Ρ‡Ρ‚Π°Ρ… Π±Ρ‹Π»Π° простая ΠΈ мощная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая Π±Ρ‹ использовала Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ Python 3, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ‚Π°ΠΉΠΏ-Ρ…ΠΈΠ½Ρ‚ΠΈΠ½Π³. Π•ΠΉ оказалась Arcade. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

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

Установка

Arcade, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, доступна Π½Π° PyPi, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Arcade ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip (ΠΈΠ»ΠΈ pipenv). Если Python ΡƒΠΆΠ΅ установлСн, скорСС всСго ΠΌΠΎΠΆΠ½ΠΎ просто ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Windows ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

Для Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ инструкции ΠΏΠΎ установкС, ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ установкС Arcade.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ рисунок

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΈ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ простой рисунок всСго нСсколькими строчками ΠΊΠΎΠ΄Π°. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, нарисуСм смайлик, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅:

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

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ рисования Arcade. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с быстрым Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„ΠΈΠ΄Π±Π΅ΠΊΠΎΠΌ β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ старт для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ учится.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² глобальном контСкстС β€” Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π΅Π»ΠΊΡƒ Π² Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… (x, y), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, посмотритС рисунок с функциями.

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

Π‘ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ соврСмСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сначала Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ просят Π΅Π΅ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ batch-Ρ„Π°ΠΉΠ»ΠΎΠΌ. Arcade это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚. Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Π°Ρ отрисовка 10000 ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 0.8 сСкунды. ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ количСства Π±Π°Ρ‚Π½ΠΈΠΊΠΎΠΌ Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ΅Π½Π΅Π΅ 0.001 сСкунды.

Класс Window

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

Π’ классС Window Π΅ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ для обСспСчСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎΡ‚ список Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго:

Π‘ΠΏΡ€Π°ΠΉΡ‚Ρ‹

Π‘ΠΏΡ€Π°ΠΉΡ‚Ρ‹ β€” простой способ создания 2D bitmap ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Arcade. Π’ Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ спрайты. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спрайты для отслСТивания ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ спрайта

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ инстанс Sprite класса Arcade ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° изобраТСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ спрайт, ΠΈ, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, число Ρ€Π°Π· для увСличСния ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ изобраТСния. НапримСр:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ создаСт спрайт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ coin_01.png. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ Π΄ΠΎ 20% ΠΎΡ‚ исходной.

Бписок спрайтов

Π‘ΠΏΡ€Π°ΠΉΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² списки. Они ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. Π‘ΠΏΡ€Π°ΠΉΡ‚Ρ‹ Π² спискС Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ OpenGl для Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ batch-отрисовки. НиТСпривСдСнный ΠΊΠΎΠ΄ настраиваСт ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊ ΠΈ мноТСство ΠΌΠΎΠ½Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π° списка β€” ΠΎΠ΄ΠΈΠ½ для ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΎΠ΄ΠΈΠ½ для ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΊ.

ΠœΡ‹ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всС ΠΌΠΎΠ½Π΅Ρ‚ΠΊΠΈ Π² спискС ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΊ:

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ спрайтов

Ѐункция check_for_collision_with_list позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ссли спрайт наталкиваСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ спрайт ΠΈΠ· списка. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΌΠΎΠ½Π΅Ρ‚ΠΊΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ пСрСсСкаСтся спрайт ΠΈΠ³Ρ€ΠΎΠΊΠ°. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² простой for- Ρ†ΠΈΠΊΠ», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΌΠΎΠ½Π΅Ρ‚ΠΊΠΈ Π² ΠΈΠ³Ρ€Π΅ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ счСт.

Π‘ ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² collect_coins.py.

Π˜Π³Ρ€ΠΎΠ²Π°Ρ Ρ„ΠΈΠ·ΠΈΠΊΠ°

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ³Ρ€Π°Ρ… Π΅ΡΡ‚ΡŒ Ρ„ΠΈΠ·ΠΈΠΊΠ° Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π‘Π°ΠΌΡ‹Π΅ простоС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ top-down ΠΈΠ³Ρ€Ρ‹ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ³Ρ€ΠΎΠΊΡƒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ сквозь стСны. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ слоТности с Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ двиТущимися ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ. НСкоторыС ΠΈΠ³Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ физичСскиС 2D Π΄Π²ΠΈΠΆΠΊΠΈ с массами, Ρ‚Ρ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€ΡƒΠΆΠΈΠ½Π°ΠΌΠΈ ΠΈ Ρ‚Π΄.

Top-down ΠΈΠ³Ρ€Ρ‹

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

Для простых ΠΈΠ³Ρ€ с Π²ΠΈΠ΄ΠΎΠΌ свСрху ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Arcade Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ список стСн (ΠΈΠ»ΠΈ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ), Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ³Ρ€ΠΎΠΊ Π½Π΅ смоТСт ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я Π½Π°Π·Ρ‹Π²Π°ΡŽ это wall_list. Π—Π°Ρ‚Π΅ΠΌ создаСтся физичСский Π΄Π²ΠΈΠΆΠΎΠΊ Π² установочном ΠΊΠΎΠ΄Π΅ класса Window:

player_sprite ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€ двиТСния с двумя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ change_x ΠΈ change_y. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ Π·Π°Π΄Π°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΎΠ½ Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚. ΠœΠ΅Ρ‚ΠΎΠ΄ update Π² классС Window Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ physics_engine.update(), Ρ‡Ρ‚ΠΎ заставит ΠΈΠ³Ρ€ΠΎΠΊΠ° Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, Π½ΠΎ Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· стСны.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² sprite_move_walls.py.

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

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

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Ρƒ с Π²ΠΈΠ΄ΠΎΠΌ сбоку достаточно прост. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ физичСский Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π° PhysicsEnginePlatformer ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ константу.

Для добавлСния Ρ‚Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±Π»ΠΎΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ€ΠΎΠ΄Π΅ Tiled.

Π£Ρ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

Π£Ρ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Arcade Π΅ΡΡ‚ΡŒ большой список ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ создании ΠΈΠ³Ρ€Ρ‹. Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚Ρ‹ ΠΈΠ³Ρ€, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ ΠΌΠΎΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈ ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ студСнты Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚.

Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Π΅ΠΌΠΊΠΈ ΠΏΡ€ΠΈ установлСнной Arcade совсСм Π½Π΅ слоТно. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ввСсти Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку для запуска этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. НапримСр:

Как всСгда ΠΆΠ΄Ρ‘ΠΌ ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΡƒΡ‚ ΠΈΠ»ΠΈ Π·Π°ΠΉΡ‚ΠΈ ΠΊ Бтасу Π½Π° дСнь ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄Π²Π΅Ρ€Π΅ΠΉ.

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

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

Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. image loader. Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. БСгодня ΠΌΡ‹ научимся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько простых ΠΈΠ³Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ распространСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python.
Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ здСсь написано для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. image loader. Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 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) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° пСрсонаТа Π½Π° экран. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΡƒΠ±Π΅Ρ€Π΅ΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ интСрСсный способ отобраТСния гСроя.

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

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

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

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

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

Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. image loader. Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 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)
Π½Π°

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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