ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

SGDK. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° для Sega Genesis.

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

Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с MEGA.

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ создадим ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ Π½Π° SGDK. Π”Π°, Ρ‚Π°ΠΊ быстро, ΠΈ сразу Π² ΠΏΠ΅ΠΊΠ»ΠΎ, приступим.

Π§Ρ‚ΠΎ потрСбуСтся для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π°.

А потрСбуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠŸΡƒΡΡ‚ΡŒ вас Π½Π΅ ΠΏΡƒΠ³Π°Π΅Ρ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ список ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², СдинствСнный Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ это:

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, ΠΌΡ‹ Π»ΠΈΠ±ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ, Π»ΠΈΠ±ΠΎ Π΄ΠΎ Π½ΠΈΡ… Π½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вопрос, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠΉΠΌΠ΅ΠΌ Ρ‚Π°ΠΉΠ» Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ являСтся Ρ‚Π²Π΅Ρ€Π΄Ρ‹ΠΌ?

РазбираСмся Π² массивС ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ.

На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ.

Массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ β€” это 2-Ρ… ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив хранящий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ твСрдости Ρ‚Π°ΠΉΠ»Π°. НапримСр:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠ», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ стоит ΠΈΠ³Ρ€ΠΎΠΊ. ДСлаСтся это Ρ‚Π°ΠΊ.

1-я ΠΈ вторая строка ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹, Π½ΠΎ 2-я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΉ, Ρ‚.ΠΊ. Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈΠ³Ρ€ΠΎΠΊΠ° дСлится Π½Π° 8, ΠΏΠΎΡ‚ΠΎΠΌΡƒ-Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΉΠ» 8Γ—8 px.

Зная ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ (level), ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‚Π²Π΅Ρ€Π΄Ρ‹ΠΉ Π»ΠΈ, Ρ‚Π°ΠΉΠ» Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ стоит ΠΈΠ³Ρ€ΠΎΠΊ, ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ДСлаСтся это ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ.

x_tile, y_tile β€” Ρ‚Π°ΠΉΠ» Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ стоит ΠΈΠ³Ρ€ΠΎΠΊ.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’.Π΅. Ссли level[y_tile][x_tile] Π²Π΅Ρ€Π½Π΅Ρ‚ 0, Ρ‚ΠΎ нСльзя ΠΏΡ€ΠΎΠΉΡ‚ΠΈ, Ссли 1, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ.

Π”Π°Π»Π΅Π΅, Π½Π°ΠΌ понадобится Python скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΈΠ· ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ писал я сам, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этой Π·Π°Π΄Π°Ρ‡ΠΈ.

Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ.

Π‘ΠΏΠ΅Ρ€Π²Π°, скачайтС скрипт с MEGA.

И ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ Π½Π° col_generator.exe, скрипт сам сгСнСрируСт Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ. ЗапуститС col_generator.exe Ρ‡Π΅Ρ€Π΅Π· консоль, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ скрипт Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°), Π·Π°Ρ‚Π΅ΠΌ, запуститС скрипт со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ bg.png, находится Π² ΠΏΠ°ΠΏΠΊΠ΅ res ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ПослС запуска, скрипт сгСнСрируСт 2 ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ тСкстовый Ρ„Π°ΠΉΠ».

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ bg_WithCollision.png, Ρ‚Π²Π΅Ρ€Π΄Ρ‹Π΅ Ρ‚Π°ΠΉΠ»Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ красным.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’ Ρ„Π°ΠΉΠ»Π΅ bg_array.txt хранится массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² пиксСлях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, понадобится для ограничСния ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π°.

РСсурсы ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π°.

Π’ ΠΏΠ°ΠΏΠΊΠ΅ res, находится спрайт ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΈ ΠΊΠ°Ρ€Ρ‚Π° ΠΌΠΈΡ€Π°.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π‘ΠΏΡ€Π°ΠΉΡ‚ ΠΈΠ³Ρ€ΠΎΠΊΠ°(ΠΊΡ€ΡƒΠΆΠΊΠΈ) я сдСлал максимально ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ-Π±Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅ Π±Ρ‹Π»ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ столкновСний.

Код ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π°.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ main.c

Нас привСтствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ массив ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, сгСнСрированный Ρ€Π°Π½Π΅Π΅.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π”Π°Π»Π΅Π΅, ΠΈΠ΄ΡƒΡ‚ структуры, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main, заполняСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° β€” значСниями.

Установка ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ спрайта ΠΈ скролл ΠΊΠ°Ρ€Ρ‚Ρ‹, осущСствляСтся Π² setCameraPosition.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ смСщСна Π² минус ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ³Ρ€ΠΎΠΊ находится Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠ°Ρ€Ρ‚Ρ‹.

УстанавливаСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ спрайта ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Данная конструкция, обСспСчиваСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ спрайта ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ ΠΊΠ°Ρ€Ρ‚Ρ‹.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ.

Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠ΄ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ moveEntity, ΠΈΠΌΠ΅Π½Π½ΠΎ эта функция ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Если Π±Ρ‹, ΠΈΠ³Ρ€ΠΎΠΊ пСрСмСщался со ΡΠΊΡ€ΠΎΡΡ‚ΡŒΡŽ, ΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ Ρ‚Π°ΠΉΠ»Π° (1, 2, 4, 8). И находился Π±Ρ‹, строго Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… Ρ‚Π°ΠΉΠ»Π°. Π’ΠΎΠ³Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ-Π±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ moveEntity, Π΄ΠΎ:

Π’.Π΅. Ссли Π½Π° Π±ΡƒΠ΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° (posX+spdX) Π½Π΅Ρ‚ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ, Ρ‚ΠΎΠ³Π΄Π° пСрСмСщаСмся Π½Π° Π±ΡƒΠ΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” стоим Π½Π° мСстС.

Но, Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ΠΎΠ².

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ else. ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² основном, состоит ΠΈΠ· копипасты.

Π—Π΄Π΅ΡΡŒ, я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΡƒΡ‚ΠΊΠΎ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Ρ‚.ΠΊ. Ссли Π±ΡƒΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, выпуск ΡΡ‚Π°Ρ‚ΡŒΠΈ затянСтся Π΄ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π₯риста. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, приступим.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π½Π° столкновСниС.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ΄ else.

Если ΠΈΠ³Ρ€ΠΎΠΊ двигаСтся Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ if (spdX), Ρ‚ΠΎ провСряСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ°, начиная ΠΎΡ‚ posX, заканчивая spdX.

Π ΠΎΠ²Π½ΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠΊΠ° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΈΠ³Ρ€ΠΎΠΊΠ° Π½Π΅ столкнСтся с ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠ΅ΠΉ. Ѐинальная ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΈΠ³Ρ€ΠΎΠΊΠ°, хранится Π² testPosX, testPosY. Она приравниваСтся ΠΊ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Π’ ΠΊΠΎΠ½Ρ†Π΅, мСняСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ задаСтся Π² handleInput:

ПослСднСС Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, это Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ всС эти Ρ„ΡƒΠΊΠ½Ρ†ΠΈΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅.

Π’Ρ€ΠΎΠ΄Π΅ ΠΎΠ±ΠΎ всСм рассказал.

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

Π’ΠΎΡ‚ ΠΈ создали ΠΌΡ‹ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€, Π±Π΅Π· монстров ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΠΉ, с ΠΎΠ΄Π½ΠΈΠΌ СдинствСнным ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΈ Π±Π΅Π· Π·Π²ΡƒΠΊΠ°. Но Π½ΠΈΡ‡Π΅Π³ΠΎ, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΠΌΡ‹ это исправим.

(Бонус) ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ.

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ вСсь ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ posX Π΄ΠΎ posX+spdX. Намного ΠΏΡ€ΠΎΡ‰Π΅, ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‚Π°ΠΉΠ»Π° (Π² пиксСлях) с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ‚Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅ΡˆΡŒΡΡ, ΠΈ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· Π½Π΅Ρ‘ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Пока, ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ коллизию. Если Ρ€Π°Π·Π±Π΅Ρ€ΡƒΡΡŒ, обновлю ΡΡ‚Π°Ρ‚ΡŒΡŽ.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ.

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

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ЗдравствуйтС! БСгодня ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ C++, Box2D ΠΈ SFML, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ 2D ΠΊΠ°Ρ€Ρ‚ для ΠΈΠ³Ρ€ Tiled Map Editor.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (ΠΊΠ°Ρ€Ρ‚Π° создавалась 5 ΠΌΠΈΠ½ΡƒΡ‚ + Π²ΠΎ врСмя сьСмки ΠΈΠ³Ρ€Π° Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΠ»Π° + экран Π½Π΅ Ρ‚Π°ΠΊ растянут β€” Π΄Π΅Ρ„Π΅ΠΊΡ‚ Bandicam):

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΈ exe β€” Π²Π½ΠΈΠ·Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π§Ρ‚ΠΎ, Π³Π΄Π΅, ΠΊΠΎΠ³Π΄Π°?

Box2D

Π­Ρ‚Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для симуляции Ρ„ΠΈΠ·ΠΈΠΊΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π΅ (столкновСниС с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, гравитация). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ стоило для ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² ΡŽΠ·Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π½ΠΎ красиво ΠΆΠΈΡ‚ΡŒ Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡˆΡŒ πŸ˜‰
ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ Box2D? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это самая распространСнная ΠΈ бСсплатная физичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

ΠŸΠΎΡ‡Π΅ΠΌΡƒ SFML? Π’Π½Π°Ρ‡Π°Π»Π΅ я Ρ…ΠΎΡ‚Π΅Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SDL, Π½ΠΎ ΠΎΠ½Π° сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π² возмоТностях ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с SFML, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ самому. Бпасибо Π°Π²Ρ‚ΠΎΡ€Ρƒ SFML Π·Π° сэкономлСнноС врСмя!
Π•Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для отрисовки Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ

Tiled Map Editor

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΡƒΡ‚ Tiled Map Editor?
Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ для ΠΈΠ³Ρ€? Π‘ΠΏΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ вашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ Π±Ρ‹Π»ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ.

Π­Ρ‚ΠΎ довольно нСэффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅! Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠ°Ρ€Ρ‚, Π½ΠΎ Π·Π°Π΄Π½ΠΈΠΌ числом ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это Π½Π΅ дСлаСтся Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚, Π° привСдСнная Π²Ρ‹ΡˆΠ΅ Β«ΠΊΠ°Ρ€Ρ‚Π°Β» β€” Π²ΠΏΠΎΠ»Π½Π΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ TME с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ Β«Π€Π°ΠΉΠ»->Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ. Β»

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ (Ссли Π²Ρ‹ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ изомСтричСский ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€), Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ слоя XML, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚
ΠšΡΡ‚Π°Ρ‚ΠΈ, Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ слоя, Π½ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°ΠΉΠ»ΠΎΠ² нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² созданной ΠΊΠ°Ρ€Ρ‚Π΅.

Π’Π°ΠΉΠ»Ρ‹

Π—Π°Ρ‚Π΅ΠΌ ΠΈΠ΄Π΅ΠΌ Π² Β«ΠšΠ°Ρ€Ρ‚Π°->Новый Π½Π°Π±ΠΎΡ€ Ρ‚Π°ΠΉΠ»ΠΎΠ². Β», Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ наш тайлсСт:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ вас получится Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’ Ρ‡Π΅ΠΌ смысл слоСв Ρ‚Π°ΠΉΠ»ΠΎΠ²?
ΠŸΠΎΡ‡Ρ‚ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ³Ρ€Π΅ Π΅ΡΡ‚ΡŒ многослойныС ΠΊΠ°Ρ€Ρ‚Ρ‹. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ слой β€” зСмля (Π»Π΅Π΄, Ρ‡Π΅Ρ€Π½ΠΎΠ·Π΅ΠΌ, etc), Π²Ρ‚ΠΎΡ€ΠΎΠΉ слой β€” здания (ΠΊΠ°Π·Π°Ρ€ΠΌΡ‹, Ρ„ΠΎΡ€Ρ‚, etc, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ„ΠΎΠ½ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π΅Π½), Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ β€” Π΄Π΅Ρ€Π΅Π²ΡŒΡ (Сль, ΠΏΠΈΡ…Ρ‚Π°, etc, Ρ„ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π΅Π½). Π’ΠΎ Π΅ΡΡ‚ΡŒ рисуСтся сначала ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ слой, ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅Π³ΠΎ накладываСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ слой, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания слоСв Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… 4 ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°Ρ…:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c
ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c
ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² TME?
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ своС имя, Ρ‚ΠΈΠΏ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ со значСниями.
Π—Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ эта панСль

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ каТдая ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ, сами.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
УдаляСм слой «Колобоша», вмСсто Π½Π΅Π³ΠΎ создаСм слой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², допустим, с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «Колобоша». Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ»-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β» ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ β€” Shape), Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Ρ‚Π°ΠΉΠ» Колобоши ΠΈ просто ставим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ мСсто.
ПослС Ρ‡Π΅Π³ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° «Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Β». Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Kolobosha.

ПослС Ρ‡Π΅Π³ΠΎ сохранитС ΠΊΠ°Ρ€Ρ‚Ρƒ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Π½ΠΈΡ‡Π΅Π³ΠΎ архислоТного Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΊΠ°Ρ€Ρ‚ Π½Π΅Ρ‚Ρƒ. ΠŸΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΡŽ ΠΊΠ°Ρ€Ρ‚Ρ‹.

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹

Для считывания XML Ρ„Π°ΠΉΠ»ΠΎΠ² создана отличная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° TinyXML, скачайтС Π΅Π΅ исходники.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Visual Studio. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ TinyXML (ΠΈΠ»ΠΈ просто Π·Π°ΠΏΠΈΡ…Π°ΠΉΡ‚Π΅ всС эти Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ xmltest.cpp πŸ™‚ )
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ includ’Ρ‹ ΠΈ lib’Ρ‹ SFML Π² Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚->Бвойства». Если Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ β€” Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² Π“ΡƒΠ³Π»

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Level.h для ΠΊΠ°Ρ€Ρ‚

Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅Ρ‚ структура ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΅Ρ‘.
Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, Π² TME ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ бСрутся ΠΈΠ· XML Ρ„Π°ΠΉΠ»Π°, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² properties, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ любой ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Ρ€Π΅Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. name β€” имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, type β€” Π΅Π³ΠΎ Ρ‚ΠΈΠΏ, rect β€” ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, sprite β€” спрайт (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) β€” Ρ‡Π°ΡΡ‚ΡŒ тайлсСта, взятая для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘ΠΏΡ€Π°ΠΉΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ΄Π΅Ρ‚ структура слоя β€” ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ проста

Π’ слоС Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ (Π΄Π°, Π΄Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ слои!) ΠΈ список ΠΈΠ· Ρ‚Π°ΠΉΠ»ΠΎΠ².

Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅Ρ‚ класс Level:

LoadFromFile Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ сСрдцС класса Level.
GetObject Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, GetObjects Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ, ΠΏΠΎ-Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ, слСдовало ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ (type) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π²Ρ‹Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ ΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· имя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ имя показываСтся свСрху ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Ρ‚ΠΈΠΏ β€” Π½Π΅Ρ‚.
Draw рисуСт всС Ρ‚Π°ΠΉΠ»Ρ‹ (Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹!), бСря сСбС экзСмпляр RenderWindow.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создаСм Level.cpp:

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Для Layer рСализация Π½Π΅ Π½ΡƒΠΆΠ½Π°, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Level:

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Level:

ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ.
БоздаСм main.cpp и пишСм:

ΠšΠ°Ρ€Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ!

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Когда Π²Ρ‹ Π½Π°ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, наступит ΠΏΠΎΡ€Π° Box2D:

ΠšΠΎΡ€ΠΎΠ±ΠΊΠΈ-ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠΈ

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 3D-экшон ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€, ΡΡƒΡ‚ΡŒ такова…
На ΠΊΠ°Ρ€Ρ‚Π΅ располоТСны ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ β€” с названиями player β€” ΠΈΠ³Ρ€ΠΎΠΊ, enemy β€” Π²Ρ€Π°Π³, block β€” Π±Π»ΠΎΠΊ, money β€” ΠΌΠΎΠ½Π΅Ρ‚ΠΊΠΈ.
ΠœΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°, заставляСм Π΅Π³ΠΎ ΠΏΠΎΠ²ΠΈΠ½ΠΎΠ²Π°Ρ‚ΡŒΡΡ наТатиям клавиши ΠΈ силС ΠΡŒΡŽΡ‚ΠΎΠ½Π°.
Π’Ρ€Π°Π³ΠΈ ходят Ρ‚ΡƒΠ΄Π°-сюда, ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ слишком Π±Π»ΠΈΠ·ΠΊΠΎ находящСгося ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΏΠΎΠ³ΠΈΠ±Π°ΡŽΡ‚, Ссли ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΡ€Ρ‹Π³Π°Π΅Ρ‚ Π½Π° Π½ΠΈΡ…
Π‘Π»ΠΎΠΊΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ Β«Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅Β» ΠΊΠ°ΠΊ статичныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π° Π½ΠΈΡ… ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Ρ‹Π³Π°Ρ‚ΡŒ
ΠœΠΎΠ½Π΅Ρ‚Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°ΡŽΡ‚, просто ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ ΠΏΡ€ΠΈ столкновСнии с ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ main.h, стираСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΎ написано, ΠΈ пишСм:

Π—Π΄Π΅ΡΡŒ Ρƒ нас ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ level.h ΠΈ Box2D.h. iostream Π½ΡƒΠΆΠ΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° Π² консоль, random β€” для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ направлСния двиТСния Π²Ρ€Π°Π³Π°.
Π”Π°Π»Π΅Π΅ ΠΈΠ΄ΡƒΡ‚ ΠΈΠ³Ρ€ΠΎΠΊ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π²Ρ€Π°Π³Ρƒ, ΠΌΠΎΠ½Π΅Ρ‚ΠΊΠ΅, ΠΈΠ³Ρ€ΠΎΠΊΡƒ полагаСтся свой Object ΠΈ b2Body (Ρ‚Π΅Π»ΠΎ Π² Box2D).

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β€” Π±Π»ΠΎΠΊΠ°ΠΌ этого Π½Π΅ полагаСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„ΠΈΠ·ΠΈΠΊΠΈ Box2D, Π° Π½Π΅ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅.

srand(time(NULL)) Π½ΡƒΠΆΠ΅Π½ для Ρ€Π°Π½Π΄ΠΎΠΌΠ°.

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

Π”Π°Π»Π΅Π΅ создаСм Ρ‚Π΅Π»Π° Π±Π»ΠΎΠΊΠΎΠ²:

Π‘Π»ΠΎΠΊΠΈ β€” статичСскиС Ρ‚Π΅Π»Π°, ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ массы ΠΈ висят Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅:

Π’ΡƒΡ‚ ΠΌΡ‹ устанавливаСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π±Π»ΠΎΠΊΠΎΠ². Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, нас Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ коварная ошибка.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ‚Π΅Π»ΠΎ Π±Π»ΠΎΠΊΠ° Π² world. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ с Ρ‚Π΅Π»ΠΎΠΌ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ (Π² смыслС, Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΠΌ):

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‚Π΅Π»Ρƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ нСсколько shape β€” Ρ„ΠΈΠ³ΡƒΡ€. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ эту Ρ‚Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ (ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Π΅Π»Π°ΠΌ) Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ всСго-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

БвязываСм Ρ„ΠΈΠ³ΡƒΡ€Ρƒ с Ρ‚Π΅Π»ΠΎΠΌ.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС с Π²Ρ€Π°Π³Π°ΠΌΠΈ, ΠΌΠΎΠ½Π΅Ρ‚Π°ΠΌΠΈ ΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ, Π·Π° нСбольшими различиями:

ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ.

ВсС Ρ‚Π΅Π»Π° созданы, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ!

Π₯ΠΎΡ€ΠΎΡˆΠΎ понятный ΠΊΠΎΠ΄, создаСт ΠΎΠΊΠ½ΠΎ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ:

Π’ΡƒΡ‚ ΠΌΡ‹ создаСм Π²ΠΈΠ΄ (View) для ΠΎΠΊΠ½Π°.

Π—Π°Ρ‡Π΅ΠΌ это Π½Π°Π΄ΠΎ? Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Π΅ ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΠΌΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана Π½Π° 2 с использованиСм sf::View ΠΈ всС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ Π² 2 Ρ€Π°Π·Π° Π²Ρ‹ΡˆΠ΅ ΠΈ ΡˆΠΈΡ€Π΅.

Окно закрываСтся ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° красный крСстик. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±Ρ‹Π» Ρ€Π°Π½Π΅Π΅:

Π’ΡƒΡ‚ ΡƒΠΆΠ΅ интСрСснСС! ΠœΡ‹ добавляСм ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиш WAD:

Π’ΡƒΡ‚ ΠΌΡ‹ обновляСм физичСский ΠΌΠΈΡ€ Box2D. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ частоту обновлСния ΠΌΠΈΡ€Π° (Ρ€Π°Π· Π² 1/60 сСкунд), Π° Ρ‚Π°ΠΊΠΆΠ΅ количСство velocityIterations ΠΈ positionIterations. Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послСдних Π΄Π²ΡƒΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π΅ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½Π΅Π΅ получаСтся Ρ„ΠΈΠ·ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас Π½Π΅Ρ‚Ρƒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… слоТных Ρ„ΠΈΠ³ΡƒΡ€, ΠΊΠ°ΠΊ Π² AngryBirds, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, Ρ‚ΠΎ Π½Π°ΠΌ достаточно ΠΏΠΎ Ρ€Π°Π·Ρƒ.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ столкновСниС ΠΈΠ³Ρ€ΠΎΠΊΠ° с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚Π΅Π»Π°ΠΌΠΈ:

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° столкновСния с ΠΌΠΎΠ½Π΅Ρ‚Π°ΠΌΠΈ.
Если какая ΠΌΠΎΠ½Π΅Ρ‚Π° ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»Π°ΡΡŒ с ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ, ΠΎΠ½Π° просто уничтоТаСтся ΠΈ стираСтся ΠΈΠ· Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

Если Π²Ρ€Π°Π³ сталкиваСтся с ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ, провСряСтся, Π²Ρ‹ΡˆΠ΅ ΠΈΠ³Ρ€ΠΎΠΊ Π²Ρ€Π°Π³Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если ΠΈΠ³Ρ€ΠΎΠΊ Π²Ρ‹ΡˆΠ΅ Π²Ρ€Π°Π³Π°, Ρ‚ΠΎ ΠΎΠ½ стираСтся, Π° ΠΈΠ³Ρ€ΠΎΠΊ подскакиваСт Π²Π²Π΅Ρ€Ρ….

Если ΠΈΠ½Π°Ρ‡Π΅, Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠΊ отскакиваСт ΠΎΡ‚ Π²Ρ€Π°Π³Π°:

Π˜Π³Ρ€ΠΎΠΊ двиТСтся Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π½Π°Π»Π΅Π²ΠΎ Π² соотвСствии с Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ€Π°Π³Π°.

Если ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ€Π°Π³Π° Ρ€Π°Π²Π½Π° 0, Ρ‚ΠΎ Π΅ΠΌΡƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ придаСтся вновь β€” ΠΎΠ½ двиТСтся Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΎ, Π»ΠΈΠ±ΠΎ Π½Π°Π»Π΅Π²ΠΎ. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ это выглядит ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Ρ‹Π²ΠΊΠ°ΠΌΠΈ.

Π Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π‘Π΅Ρ€Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈΠ³Ρ€ΠΎΠΊΠ°, измСняСм Ρ†Π΅Π½Ρ‚Ρ€ Π²ΠΈΠ΄Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ наш Π²ΠΈΠ΄

УстанавливаСм спрайтам ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΌΠΎΠ½Π΅Ρ‚ ΠΈ Π²Ρ€Π°Π³ΠΎΠ² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· b2Body:

ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΎΠΊΠ½Π°, рисуСм Ρ‚Π°ΠΉΠ»Ρ‹ ΠΊΠ°Ρ€Ρ‚Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°, ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ ΠΈ Π²Ρ€Π°Π³ΠΎΠ², послС Ρ‡Π΅Π³ΠΎ прСдставляСм ΠΎΠΊΠ½ΠΎ.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c
https://github.com/Izaron/Platformer

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

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈΠ³Ρ€Ρ‹-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° SDL Π² 300 строк C++

Π­Ρ‚ΠΎΡ‚ тСкст ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ осваиваСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π― Ρ‡ΠΈΡ‚Π°ΡŽ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ C++ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ курсС мСстного унивСрситСта, ΠΈ Π² качСствС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ (Π½Π΅ Π²Ρ‹Π½ΠΎΡˆΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° «ΡΠΎΡ„Ρ‚ бронирования ΠΊΠ½ΠΈΠ³ Π² мСстной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅»). БоотвСтствСнно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ, я сдСлал Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΊ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. НапримСр, Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΎΠ»Π΄ΡΠΊΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ 3Π΄ ΡˆΡƒΡ‚Π΅Ρ€Π° Π² 486 строк C++ я ΡƒΠΆΠ΅ описывал, Π° Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ· Π½Π΅Ρ‘ сдСлали пСрвокурсники.

Π’ этот Ρ€Π°Π· всё Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅, я Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ содСрТит ΠΌΠ΅Π½Π΅Π΅ трёхсот строчСк Ρ†ΠΏΠΏ:

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

Π¨Π°Π³ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ: ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ

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

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ я Ρ…ΠΎΡ‚Π΅Π» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, ΡƒΠ±Ρ€Π°Ρ‚ΡŒ дСтскиС Π±Π°Π³ΠΈ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ красивый «ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΡ‡Ρƒ», Π½ΠΎ Ρ‚ΡƒΡ‚ случился Π°Π½Π΅ΠΊΠ΄ΠΎΡ‚: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ я создал Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±Ρ‹Π» Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ„ΠΎΡ€ΠΊΠ½ΡƒΡ‚ ΠΏΠ°Ρ€ΠΎΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ½Π΅ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ прислал ΠΏΡƒΠ»Π» рСквСст ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. БоотвСтствСнно, Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π½Π΅ сломав ΠΈΡ… Ρ€Π΅ΠΏΡ‹, я ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρƒ. Π˜Π·Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Π²ΡƒΡ… с ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ тысяч Ρ„ΠΎΠ»Π»ΠΎΠ²Π΅Ρ€ΠΎΠ² Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±Π΅ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ мСня чСстный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±Π΅Π· прикрас.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит ΠΊΠΎΠ΄, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ пустоС ΠΎΠΊΠ½ΠΎ:

БобствСнно, Ρ‚Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠ²Π΅Ρ€Ρ…ΡŠΠ΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ: ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ SDL, создаём ΠΎΠΊΠ½ΠΎ с Π·ΠΎΠ½ΠΎΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΈ запускаСм основной Ρ†ΠΈΠΊΠ» ΠΈΠ³Ρ€Ρ‹. По ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ закрытия ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ эскСйпа Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΈ чистим ΠΏΠ°ΠΌΡΡ‚ΡŒ. Piece of cake.

Π¨Π°Π³ Π²Ρ‚ΠΎΡ€ΠΎΠΉ: счётчик fps

На Π²Ρ‚ΠΎΡ€ΠΎΠΌ этапС я Ρ€Π΅ΡˆΠΈΠ» ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ количСство пСрСрисовок экрана Π² сСкунду, Ρ…ΠΎΡ‡Ρƒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (Π½Π΅ ΠΏΡƒΠ³Π°ΠΉΡ‚Π΅ΡΡŒ сорока тысяч fps, всё ΠΆΠ΅ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Π² основном Ρ†ΠΈΠΊΠ»Π΅!):

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Всё Π΅Π΄ΠΈΠ½ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со спрайтами, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΆΠ΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ для отрисовки счётчика? Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ структура для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со спрайтами:

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Π¨Π°Π³ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ: сорок тысяч fps это ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°Ρ‚ΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ помСньшС

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ мСня Π½Π° Π½ΠΎΡƒΡ‚Π΅ вСнтиляторы крутятся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ порываСтся ΡƒΠ»Π΅Ρ‚Π΅Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅-ΠΊΠ° снизим Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΏΡ€ΠΎΡ†. Как Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ основной Ρ†ΠΈΠΊΠ» ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ большС 50 Ρ€Π°Π· Π² сСкунду? Π‘Π°ΠΌΡ‹ΠΉ Π½Π°ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚ΡƒΠΏΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° 20 миллисСкунд Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² максимум 50 fps. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° Тизнь, Π½ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ do_nothing() ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠΈΠΌΠΎ. А Ссли Π²Π΄Ρ€ΡƒΠ³ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, скаТСм, Π·Π° 12мс? Π’ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ 20, Π° 8, ΠΈΠ½Π°Ρ‡Π΅ сильно просСдаСт FSP. А вСдь это Π΅Ρ‰Ρ‘ зависит ΠΎΡ‚ компа… ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π¨Π°Π³ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ: отрисовываСм ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ отрисуСм ΠΊΠ°Ρ€Ρ‚Ρƒ уровня, Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π― Ρ…ΠΎΡ‡Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Для этого я сначала нарисовал тСкстуру 768 x 128 пикслСй, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρƒ мСня ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΎ ΡˆΠ΅ΡΡ‚ΡŒ спрайтов камСнюк Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 128×128:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Мой экран Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° 192 ΠΊΠ»Π΅Ρ‚ΠΊΠΈ (16 ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ 12 ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ), ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ соотвСтствуСт какая-Ρ‚ΠΎ тСкстура.

Π‘Π°ΠΌΠ° структура ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π¨Π°Π³ пятый: пСрсонаТ ΠΈ Π΅Π³ΠΎ анимация

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ: нСпосрСдствСнно пСрсонаТ. Π”Π°Π²Π°ΠΉΡ‚Π΅ для Π½Π°Ρ‡Π°Π»Π° научимся ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. Π― взял ΠΊΠ°Ρ€Π°Π½Π΄Π°Ρˆ ΠΈ нарисовал ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π΄Ρ€ΠΎΠ², которая ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ΄ΡƒΡ‰Π΅Π³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅Ρ‡ΠΊΠ°:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚):

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

НС Π±Π΅ΠΉΡ‚Π΅ мСня больно Π·Π° ΠΊΡ€ΠΈΠ²Ρ‹Π΅ рисунки, я программист, Π° Π½Π΅ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ! Как ΠΆΠ΅ Π½Π°ΠΌ ΠΈΡ… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° экранС? Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ опишСм структуру, которая Π±ΡƒΠ΄Π΅Ρ‚ отвСтствСнна Π·Π° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ пСрсонаТа:

ИспользованиС этой структуры ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ использованию ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ счётчика fps:

Π¨Π°Π³ ΡˆΠ΅ΡΡ‚ΠΎΠΉ: опрос ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° столкновСний

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ научимся ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ столкновСния с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ (Π²ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚). Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π¨Π°Π³ сСдьмой: сила тяТСсти!

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ столкновСния ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, ΠΎΠ½Π° Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚, Π½Ρƒ Π° Π²ΠΎΡ‚ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ПослСдниС ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ

ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ β€” это ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€Ρ‹ΠΆΠΊΠΎΠ². Π­Ρ‚ΠΎ дСлаСтся Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… скоростСй vx ΠΈ vy Π² зависимости ΠΎΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ курсорных клавиш. Чисто ΠΏΠΎ ΠΏΡ€ΠΈΠΊΠΎΠ»Ρƒ Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€Ρ‹ΠΆΠΊΠΈ Π² высоту ΠΈ ΠΏΡ€Ρ‹ΠΆΠΊΠΈ Π² Π΄Π»ΠΈΠ½Ρƒ:

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

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

Ну Π²ΠΎΡ‚, собствСнно, ΠΈ всё. Как я ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π», ΠΈΠ³Ρ€Ρ‹ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Ρƒ мСня Π½Π΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ³Ρ€Π°Π±Π΅Π»ΡŒΠ½Π°Ρ Π΄Π΅ΠΌΠΊΠ° всСго ΠΈΠ· 296 строк ΠΊΠΎΠ΄Π°.

МоСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π±Ρ‹Π»ΠΎ лишь ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ построСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π°, ΠΈ ΠΌΠ½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π΄Π°Π΄ΡƒΡ‚ ΠΌΠΎΠΈ студСнты Π² этом Π³ΠΎΠ΄Ρƒ. Π›ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ этого ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘.

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

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€ Π·Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Π΅Ρ‡Π΅Ρ€Π°

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ: Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Π³Π΅ΠΉΠΌ-Π΄Π΅Π²Π΅Π»ΠΎΠΏΠΌΠ΅Π½Ρ‚Π΅ для Π΄ΡƒΡˆΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ стыдно Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ ΠΌΠΈΡ€Ρƒ β€” придСтся ΠΏΠΎΠΏΠΎΡ‚Π΅Ρ‚ΡŒ подольшС.

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

1. ЦСль

МоСй Ρ†Π΅Π»ΡŒΡŽ Π±Ρ‹Π»ΠΎ созданиС классичСского ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π°, Π½ΠΎ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΡΡŽΠΆΠ΅Ρ‚ΠΎΠΌ, пСрсонаТами ΠΈ уровнями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсны ΠΌΠ½Π΅. Π― Ρ…ΠΎΡ‚Π΅Π» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ своими силами ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для сСбя; ΠΏΡ€ΠΈ этом ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ сил ΠΈ своСго свободного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

2. Поиск инструмСнтов

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π³Π΅ΠΉΠΌΠΏΠ»Π΅ΠΉ с нуля Π½Π΅Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ. Π― Π½Π°Ρ‡Π°Π» с поиска конструкторов ΠΈ срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ ΠΈ нашСл достаточно большой список Π½Π° сайтС [http://gcup.ru/load/konstruktory_igr/12]. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания Ρ…ΠΎΡ‡Ρƒ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠΈΡ‚ΡŒ конструкторы, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСматичСскиС ΠΈΠ³Ρ€Ρ‹: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Open Zelda [http://openzelda.net/] ΠΈΠ»ΠΈ Mario Worker [http://www.softendo.com/game/Mario%20Worker]. Настоящий ΠΊΠ»Π°Π΄ для Ρ„Π°Π½Π°Ρ‚ΠΎΠ².

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

НС Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ ΠΈ конструкторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ классичСских ΠΆΠ°Π½Ρ€ΠΎΠ² (Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Ρ‹), ΠΈ ΠΏΡ€ΠΈ этом Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования. НапримСр, 001 Game Creator [http://www.engine001.com/] ΠΈΠ»ΠΈ Rune Sword [http://www.runesword.com/].

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠŸΡ€ΠΈ всСй своСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ конструкторы Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π²ΠΎΡ€Ρ†Π° Π² возмоТностях. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΠΈΡ‡ этих инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ Π½Π° Андроид, ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅.
Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… срСдств проСктирования ΠΈΠ³Ρ€, ΠΌΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊ Tululoo Game maker [http://tululoo.com/].

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

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

3. Быстрый старт Π² Tululoo Game maker

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ заинтСрСсовался созданиСм ΠΈΠ³Ρ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Tululoo Game Maker, я Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ нСсколько этапов Ρ€Π°Π±ΠΎΡ‚Ρ‹ для Π±ΠΎΠ»Π΅Π΅ быстрого ΠΈ приятного старта.

4. Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пСрсонаТа

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° obj_player сосрСдоточСна основная ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹ β€” Ρ‡Π΅Ρ€Π΅Π· взаимодСйствиС ΠΈΠ³Ρ€ΠΎΠΊΠ° с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Step выполняСтся ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€; количСство ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду настраиваСтся ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ (я принял Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” 60 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду). БСйчас Π² событии Step обрабатываСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиш ΠΈ столкновСниС ΠΈΠ³Ρ€ΠΎΠΊΠ° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π½Π° нашСго гСроя. Нового пСрсонаТа я нарисовал Π² пэинтС Π² Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…: смотрящим Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ΡΡ рисунки Π² спрайты Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Sprites. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Edit ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ изобраТСния, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ полСзная опция Erase color, β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΠ½, добившись Ρ‚Π΅ΠΌ самым ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° obj_player ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ для Π½Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… спрайтов.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠŸΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΊΠΎΠ΄ΠΎΠΌ: Π½Π°ΡƒΡ‡ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. Для этого Π±ΡƒΠ΄Π΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ пСрсонаТа ΠΌΠ΅ΠΆΠ΄Ρƒ лСвостороннСй ΠΈ правостороннСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство sprite_index (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС API ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Ρ…Π΅Π»ΠΏΠ΅).

obj_player событиС Step:

Π’ самом Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠΎΠ΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ строки:

ЗапускаСм ΠΈ радуСмся. ΠΠ½ΠΈΠΌΠ°Ρ†ΠΈΡŽ шагов Π΄Π΅Π»Π°Ρ‚ΡŒ слоТнСС, поэтому Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ здСсь эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ.

5. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

Код ΠΈΠ³Ρ€ΠΎΠΊΠ° придСтся ΠΏΠΎΠ΄Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ со снарядом ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ° obj_player Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Ρ‚ΡŒΡΡ. Π’Π°ΠΊΠΆΠ΅ вынСсСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

obj_player событиС Creation:

obj_player событиС Collision with obj_enemy_bullet:

obj_enemy_1 событиС Creation:

obj_enemy_1 событиС Step:

6. Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ

ПослСдний шаг, Π²Π°ΠΆΠ½Ρ‹ΠΉ для создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° β€” созданиС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. Π’ Tululoo для этого вСсьма простой ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс: Π² конструкторС Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Scenes набрасываСм Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΈΠ³Ρ€ΠΎΠ²ΡƒΡŽ Π·ΠΎΠ½Ρƒ β€” ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄ΠΈΠ·Π°ΠΉΠ½ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ β€” Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΈ самый Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ процСсс. Π—Π΄Π΅ΡΡŒ настоящий простор для вообраТСния.

ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c. Π€ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° Π½Π° c

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡˆΡƒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΡƒΡŽ Π·Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ уровнями. Для это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция room_goto_next (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС API ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Ρ…Π΅Π»ΠΏΠ΅).

obj_player событиС Step:

Π—Π°ΠΌΠ΅Π½ΠΈΠΌ послСднюю строку ΠΊΠΎΠ΄Π° Π½Π°:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ этого события Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

obj_player событиС Step:

7. РСзюмС

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

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

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

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