NutEngine - 2D Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³Ρ. Π Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ MonoGame, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ», ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π²ΡΠΊΠ° ΠΈ ΠΌΡΠ·ΡΠΊΠΈ.
ΠΠ΅ΠΌΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π΄Π°Π»Π΅Π΅:
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅/Π‘ΡΠ΅Π½Ρ - ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΈΠ³ΡΡ (Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, ΠΏΠ°ΡΠ·Π°, ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ).
- ΠΡΠ°Ρ ΡΡΠ΅Π½Ρ - ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°.
- Π‘ΠΏΡΠ°ΠΉΡΡ, ΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ, ΠΠ΅ΡΠΊΠΈ ΠΈ ΠΠ±Π»Π°ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ - ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ - ΡΠ·Π»Π°ΠΌΠΈ Π³ΡΠ°ΡΠ° ΡΡΠ΅Π½Ρ.
- Π€ΠΈΠ·ΠΈΠΊΠ° - ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅Π», Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ.
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
- ΠΠ°ΠΌΠ΅ΡΡ - ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΈΠ΄ΠΎΠΌ Π½Π° ΡΠ΅ΠΊΡΡΡΡ ΡΡΠ΅Π½Ρ.
- Π»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π²ΠΎΠ΄Π° - ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ.
- ΠΠ°ΡΠΈΠ½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ - ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
- Π£ΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ NutPacker - ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡΡ Π² Π°ΡΠ»Π°ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΡΡΠ°ΠΌ Π²Π½ΡΡΡΠΈ Π΄Π²ΠΈΠΆΠΊΠ°.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΠΌΠΎ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ Π΄Π²ΠΈΠΆΠΊΠ° ΠΈ Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ³ΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΆΠ°Π½ΡΠ°Ρ .
MonoGame ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΠ», ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ. Π NutEngine Π²Π²Π΅Π΄Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° Game ΠΈΠ· MonoGame.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΈΠ³Ρ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, ΠΏΠ°ΡΠ·Π°, ΡΡΠΎΠ²Π΅Π½Ρ, ΡΡΠΆΠ΅ΡΠ½ΡΠΉ ΡΠΎΠ»ΠΈΠΊ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΠΊΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΡΡΡΠ° ΡΠ²ΠΎΡ ΠΈΠ³ΡΠΎΠ²Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ΅Π½Π°ΠΌΠΈ.
ΠΠ»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΡΠΈΡ ΡΡΠ΅Π½.
ΠΡΠ΅ ΡΡΠ΅Π½Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π° ΡΡΠ΅ΠΊΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π½Π΅, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΠ·Ρ). ΠΡΠ΅Π³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΉ ΡΡΠ΅Π½Ρ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π²Π΅ΡΡΠΈΠ½Π΅ ΡΡΠ΅ΠΊΠ°.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π²ΠΈΠΆΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΡΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΠ΅Π½ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π² Π½ΠΈΡ , ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ΅Π½Ρ Π² ΡΡΠ΅ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π²Π·ΡΡΡ ΡΡΠ΅Π½Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ°, Π²Π΅ΡΠ½ΡΠ²ΡΠΈΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ.
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π‘ΡΠ΅Π½Π°.
ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ MonoGame ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π² ΠΊΠΎΠ΄Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΌΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ΄Π½ΠΎ. ΠΡΠ»ΠΎ Π±Ρ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° Π΄Π²ΠΈΠΆΠΎΠΊ Π·Π°ΠΉΠΌΠ΅ΡΡΡ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ.
ΠΠ½ΡΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π³ΡΠ°Ρ ΡΡΠ΅Π½Ρ - ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π½Π° ΡΡΠ΅Π½Π΅ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΊΡΡ). Π£Π·Π΅Π» (Node) - ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°.
ΠΠΎΡΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π² ΡΡΠ΅Π½Π΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ World, ΠΈ ΠΎΠ½, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·Π΅Π», ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅Π±Π΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π·Ρ ΠΊ Π³ΡΡΠΏΠΏΠ΅. ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ΅Π½Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄ Π²ΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°.
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Z-ΠΈΠ½Π΄Π΅ΠΊΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠ·Π»Ρ ΠΏΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π΅ Π³ΡΠ°ΡΠ°, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π΄Π΅ΡΠΈ ΡΠΎΡΡΠΈΡΡΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΠΎ Z-ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π° Π·Π°ΡΠ΅ΠΌ:
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π΄Π΅ΡΠΈ Ρ Z < 0.
- ΠΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π».
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π΄Π΅ΡΠΈ Ρ Z > 0.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π΅ΡΠΈ Ρ Z < 0 Π±ΡΠ΄ΡΡ ΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·Π»Π°, ΠΈ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π·Π°Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅.
ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π³ΡΠ°ΡΠ° ΡΡΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ° Ρ Π΅Π³ΠΎ ΡΠΊΠΈΠΏΠΈΡΠΎΠ²ΠΊΠΎΠΉ. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ΄Π΅ΠΆΠ΄Ρ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ βΠ΄Π΅ΡΡΠΌΠΈβ ΡΠ·Π»Π° ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠΊΠΈΠΏΠΈΡΠΎΠ²ΠΊΠΈ. Π’ΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ²ΠΎΡΠΎΡΠΎΠ² ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊ ΡΠ·Π»Π°ΠΌ.
ΠΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Matrix2D. Π MonoGame ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΡΡ, Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ Π² Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠΌ ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌ, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΡΠΈΠΌΠΈ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ» ΠΆΠ΅Π»Π°ΡΡ Π»ΡΡΡΠ΅Π³ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. ΠΠ°ΡΡΠΈΡΡ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΡΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· ΠΊΠ»Π΅ΡΠΎΠΊ). Π’Π°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΠΏΡ ΡΠ·Π»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ·Π»Π°, Π½ΠΎ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ:
- Π‘ΠΏΡΠ°ΠΉΡΡ (Sprite).
- ΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ (Animation).
- ΠΠ΅ΡΠΊΠΈ (Label).
Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ΅ΠΊΡΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΏΡΠ°ΠΉΡΡ ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Ρ ΡΠ°Π½ΡΡ Π² ΡΠ΅Π±Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ±Π»Π°ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ - ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΡΡ Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ Π²Π½ΡΡΡΠΈ Π½Π΅Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΠ°ΡΡΡ ΡΠ΅ΠΊΡΡΡΡΡ.
Π‘ΠΏΡΠ°ΠΉΡ - ΡΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Π°ΡΡ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ ΡΠ·Π»Π° Π³ΡΠ°ΡΠ° ΡΡΠ΅Π½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ½ΠΈΠΌΠ°ΡΠΈΡ - Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Π°ΡΡ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ ΡΠΏΡΠ°ΠΉΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΈΡΡ, Ρ ΡΠ°Π½ΡΡΡΡ ΠΊΠ°Π΄ΡΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NutPacker'Π°, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. ΠΠ½ΠΈΠΌΠ°ΡΠΈΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°Π΄Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ) ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΊΠ° - ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²:
Π ΠΈΡΡΠ½ΠΎΠΊ 3. ΠΡΠ°Ρ ΡΡΠ΅Π½Ρ, Π‘ΠΏΡΠ°ΠΉΡ, ΠΠ½ΠΈΠΌΠ°ΡΠΈΡ, ΠΠ±Π»Π°ΡΡΡ ΡΠ΅ΠΊΡΡΡΡΡ.
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΡ, ΠΏΠΎΡΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ². ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ Pinball ΠΈΠ· Windows, ΠΈ ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ Π²ΡΡΠ°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ΅ΡΠ°ΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½Π° Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ°ΡΠΈΠΊΠ° Ρ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΠ½ ΠΎΡΡΠΊΠ°ΠΊΠΈΠ²Π°Π» ΠΎΡ Π½Π΅Π³ΠΎ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ ΡΡΠΎΡ ΡΠ°ΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠΊΠ°ΠΊΠΈΠ²Π°ΡΡ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ. Π ΡΠ°ΠΊ ΠΆΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΠ±Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ ΡΠ°ΡΠΈΠΊ ΠΊΠ°ΡΠΈΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΎΡ ΠΎΠ²Π°ΡΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ, ΠΎΠ½ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ»ΡΡ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΠΈΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ² ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΈΠ·ΠΈΠΊΠΈ:
- Π€ΠΈΠ³ΡΡΡ. (Shapes)
ΠΡΡΡ 2 ΡΠΈΠΏΠ° ΡΠΈΠ³ΡΡ:
- AABB - (Axis-Aligned Bounding Box) Π²ΡΡΠΎΠ²Π½Π΅Π½Π½ΡΠΉ ΠΏΠΎ ΠΎΡΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π·Π°Π΄Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ ΠΎΡ ΡΠ΅Π½ΡΡΠ° ΠΊ ΠΏΡΠ°Π²ΠΎΠΌΡ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΠΊΡΠ°Ρ
- Circle - ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ, Π·Π°Π΄Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ - ΡΠ°Π΄ΠΈΡΡΠΎΠΌ
ΠΡΠ΅ ΡΠΈΠ³ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IShape, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ - ΡΠ΅ΠΊΡΠΎΡ. Π‘Π΅ΠΊΡΠΎΡ - ΡΡΠΎ AABB ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΠ°Π½ Π²ΠΎΠΊΡΡΠ³ ΡΡΠΎΠΉ ΡΠΈΠ³ΡΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π» Π½Π° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ, Ρ.ΠΊ. Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ, ΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΡΡΡΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠΎΡΠΎΠ², ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΠ³ΡΡ.
- Π’Π΅Π»Π°. (Rigid Bodies) Π’Π΅Π»ΠΎ - ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ:
- Π€ΠΈΠ³ΡΡΠΎΠΉ
- ΠΠ°ΡΡΠΎΠΉ
- ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ
- Π‘ΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΠΎΠ³ΠΎ ΡΠ΅Π»Π°
Π ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
- ΠΠΎΠ·ΠΈΡΠΈΡ
- Π‘ΠΊΠΎΡΠΎΡΡΡ
- Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅
- Π‘ΠΈΠ»Ρ
- ΠΠΏΡΠΈΠ»ΠΎΠ½
ΠΠΏΡΠΈΠ»ΠΎΠ½ - ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π²ΡΠ΅ ΡΠΈΠ»Ρ, ΡΠΊΠΎΡΠΎΡΡΠΈ, ΠΈ ΠΏΡΠΎΡΠΈΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π½Π΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ Π±ΡΠ» Π²Π½Π΅ΡΠ΅Π½ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΡΠ΅Π»ΠΎ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° βΠ΄ΡΠΎΠΆΠΈβ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ΅Π». ΠΡΠΎΡ ΡΡΡΠ΅ΠΊΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π»Π° Π·Π° ΠΎΠ΄Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΈ Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΡΡΡΠ΅ΠΊΡ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ, Π° Π½Π° Π²ΡΠΎΡΠΎΠΉ Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΈΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊ ΡΠ΅Π»ΠΎ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ 2 ΡΠΎΠ±ΡΡΠΈΡ:
- ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΡΠ΅Π»
- ΠΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅Π»ΠΎΠΌ
ΠΠ°ΡΠ΅ΡΠΈΠ°Π» - ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π²ΠΈΠΆΠΊΠ°, Π² Π½Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ΅Π»Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ, ΡΠΏΡΡΠ³ΠΎΡΡΡ, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΡΡΠ΅Π½ΠΈΡ - ΠΏΠΎΠΊΠΎΡ ΠΈ ΡΠΊΠΎΠ»ΡΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²Π½ΡΡΡΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° (1/m), Π° ΡΠ°ΠΌΠ° ΠΌΠ°ΡΡΠ° Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΅, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΡΠΌΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ°ΡΡΡ, ΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΈΠ³ΡΠΎΠΉ Pinball, Π² ΡΡΠΎΠΉ ΠΈΠ³ΡΠ΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π» - ΡΡΠΎ ΡΠ°ΡΠΈΠΊ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΡΠΈΠΊΠΎΠΌ ΠΎΡΡΠΊΠ°ΠΊΠΈΠ²Π°ΡΡΠΈΠΌ ΠΎΡ ΡΡΠ΅Π½ΠΊΠΈ, ΡΡΠ΅Π½ΠΊΠ° Π±Ρ ΡΠΎΠΆΠ΅ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»Π°ΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ ΠΈ Π±ΡΠ»ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π»Π°.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π»ΠΎ - ΡΠ΅Π»ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π»Π°, Π½ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π»Π° Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ Π²Π»ΠΈΡΡΡ, Ρ.Π΅. ΠΏΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ°ΡΠΈΠΊΠ° - ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ(ΡΠ²Π΅ΡΠ΄ΠΎΠ³ΠΎ) ΡΠ΅Π»Π° ΡΠΎ ΡΡΠ΅Π½ΠΊΠΎΠΉ - ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π»ΠΎΠΌ, ΡΠ°ΡΠΈΠΊ - ΠΎΡΡΠΊΠΎΡΠΈΡ ΠΎΡ Π½Π΅Π΅, Π° ΡΡΠ΅Π½ΠΊΠ° ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅.
ΠΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π»Π°ΠΌ ΠΌΠ°ΡΡΠ° Π½Π΅ Π½ΡΠΆΠ½Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π»ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π»ΠΎ Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΠΎΠΉ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΡΠ΅Π»Π°ΠΌΠΈ:
- ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡ, ΡΠΈΠ»Ρ ΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΡΡΠ°Π·Ρ, Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ.
- ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄Π°Π²Π°ΡΡ ΡΠ΅Π»Π°ΠΌ ΠΈΠΌΠΏΡΠ»ΡΡ (ApplyImpulse), Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ, Π° Π²ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΡΠ΅Π».
- ΠΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΈΠ»Ρ(ApplyForce), Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π»Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, Ρ.Π΅. ApplyForce Π»ΠΈΡΡ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅Ρ ΡΠΈΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊ ΡΠ΅Π»Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ IntegrateForces.
- Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π» Π΅ΡΠ΅ Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ IntegrateVelocity.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΠΏΡ ΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IBody, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π±ΡΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ - Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠΈΠ·ΠΈΠΊΠΎΠΉ, Π½ΠΎ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠ½ΠΊΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π½ΡΡΡΠΈ ΡΠ΅Π»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅Π», ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΈΠ».
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΠΎΠ½Ρ ΡΠΈΠ·ΠΈΠΊΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΡΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΠ»Ρ, ΡΡΠΎΡ ΡΠ°ΡΠΈΠΊ ΠΌΠ΅Π½ΡΠ» ΡΠ²ΠΎΡ ΡΠΎΡΠΌΡ Π½Π° ΡΡΡΠ΅Π»Ρ, ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ.
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ - ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠ»Ρ ΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠ°, ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅Π». (Bodies Manager) ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅Π», ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠΈ ΡΠ΅Π»Π°ΠΌΠΈ, Ρ.Π΅. Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΠ±Ρ Π½Π° Π²Π°ΡΠΈ ΡΠ΅Π»Π° Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»Π° ΡΠΈΠ·ΠΈΠΊΠ° - Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΡ Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅Π».
ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅Π» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅Π»Π°ΠΌ: * ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ (CalculateCollisions) * ΠΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠ»Ρ (IntegrateForces) * ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ²ΡΠΈΡ ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ) (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ) (ResolveCollisions) * Π£ΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ (ΡΠΎΠΆΠ΅ Π² ResolveCollisions) * Π Π΅Π³ΡΠ»ΠΈΡΡΠ΅Ρ ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ (Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ ΡΠ΅Π»Π° Π΄ΡΡΠ³ ΠΈΠ· Π΄ΡΡΠ³Π° Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ»ΠΈΡΡ) (PositionAdjustment) * ΠΡΠ·ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Ρ ΡΠ΅Π» (OnUpdateAll, OnCollisionAll)
ΠΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ(ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΡΠ΅Π») ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° Π΄Π²Π° ΡΡΠ°ΠΏΠ° - Π΄Π²Π΅ ΡΠ°Π·Ρ:
- Π¨ΠΈΡΠΎΠΊΠ°Ρ ΡΠ°Π·Π° (Broad Phase) - Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° - ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅Π», ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π», Π° Π½Π΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°. Π’.Π΅. ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ΅Π»ΠΎ, Π²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
- Π£Π·ΠΊΠ°Ρ ΡΠ°Π·Π° (Narrow Phase) - Π£ΠΆΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Π»ΠΈ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
- ΠΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ.
ΠΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ Π² Π½Π°ΡΠ΅ΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅, ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»Π°ΠΌΠΈ. ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΏΡΠΎ 3 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: ΠΠ±Π»Π°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ (IntersectionArea) - ΠΠ±ΡΠ΅ΠΊΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»: Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π½ΠΎΡΠΌΠ°Π»Ρ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊ Π²ΡΠΎΡΠΎΠΌΡ. ΠΠΎΠ»Π»ΠΈΠ·ΠΈΡ (Collision) - ΠΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°Π½ΡΡΠΈΠΉ Π² ΡΠ΅Π±Π΅ 2 ΡΠ΅Π»Π° ΠΈ ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ Π‘Π°ΠΌ ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ - ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Collide Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠ³ΡΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠ΅ 2 ΡΠ΅Π»Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π» Π½Π° ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ΅Π», Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π½Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Collide, Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ IBody, Π° Π²Π½ΡΡΡΠΈ Π½Π΅Π΅ ΡΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΈΠ³ΡΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²:
Π ΠΈΡΡΠ½ΠΎΠΊ 4. Π€ΠΈΠ·ΠΈΠΊΠ°.
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΈΠ³ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΌΠΎΠ³ΡΡ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ, ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π²Π΅ΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΡΡΠΎΠΈΡΡΡ ΠΎΠ±ΡΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ ΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ βΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρβ, ΠΈ ΠΎΠΏΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² ΠΈΠ³ΡΠ°Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΡΡΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π·Π°Π΄Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ), ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΠΈΠ³ΡΡ ΡΠ΄Π°Π»ΡΡΡ/Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΡΠΌΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ.
ΠΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ. Π£ΠΏΡΠΎΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π§Π°ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΡΠ°Π½ΡΡΠ΅ Π΄ΡΡΠ³ΠΈΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ½Π°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΠ΅ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π° ΠΊΠ°Π΄Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ.
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΡΠ»ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄ΡΠ³ΠΈ Π³ΡΠ°ΡΠ° Π±ΡΠ»ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ , Π½Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π³ΡΠ°Ρ:
Π ΠΈΡΡΠ½ΠΎΠΊ 5. ΠΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π’ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ Π²Π΅ΡΡΠΈΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΈΡΡΠ½ΠΎΠΊ 6. ΠΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ.
ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΠ±Ρ Π½Π° Π²Π°ΡΠ΅ ΡΠ΅Π»ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»Π° Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΡ - ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ Π½Π΅ΠΌΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ Ρ Π²Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΠΈ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΠ»Π° Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ - ΡΠΊΠΎΡΠΎΡΡΡ, ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ, Π·Π΄ΠΎΡΠΎΠ²ΡΠ΅.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ:
Π ΠΈΡΡΠ½ΠΊΠ΅ 7. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ.
ΠΠ°ΠΌΠ΅ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΌΠΈΡ. ΠΠ°ΠΌΠ΅ΡΠ° Ρ ΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΊΠ°ΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΉ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ:
- SRT (OrthographicSRTCamera) - ΡΠΏΠ΅ΡΠ²Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Scale), Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΠΎΡΠΎΡ (Rotate), Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ (Translate) ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΠΌΠ΅ΡΡ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ.
- TRS (OrthographicTRSCamera) - ΡΠΏΠ΅ΡΠ²Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ (Translate), Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΠΎΡΠΎΡ (Rotate), Π° Π·Π°ΡΠ΅ΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Scale). Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΆΠ΅ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΊΠ°ΠΌΠ΅ΡΠ°. Π’.ΠΊ. ΡΠΏΠ΅ΡΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°(ΠΌΠΈΡΠ°), Π° Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ°ΠΌΠ΅ΡΡ.
Π Π°Π·Π»ΠΈΡΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΡΡΠ½ΠΈΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅: ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΎΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΊΠ°ΠΌΠ΅ΡΡ ΠΈ Π² ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΠ΅ Π΅Π΅, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:
- SRT - ΡΠΏΠ΅ΡΠ²Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡ, Ρ.Π΅. Π³Π΄Π΅ Π±Ρ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ΅Π»ΠΎ, ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ° ΠΊΠ°ΠΌΠ΅ΡΡ.
- TRS - ΡΠΏΠ΅ΡΠ²Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Ρ.Π΅. ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ°ΡΠ°ΡΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠΈ.
ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡ. ΠΠ»ΠΈ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ ΠΊΠ°ΠΌΠ΅ΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π² Π΅Π΅ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Camera2D.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²:
Π ΠΈΡΡΠ½ΠΎΠΊ 8. ΠΠ°ΠΌΠ΅ΡΡ.
Π MonoGame ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π²ΠΎΠ΄Π° ΠΈΠ³ΡΠΎΠΊΠ°, Π½ΠΎ Π² Π½Π΅ΠΉ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·Π½Π°ΡΡ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π»ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠΆΠ°ΡΠΈΠ΅(release) ΠΊΠ»Π°Π²ΠΈΡΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·Π½Π°ΡΡ, Π½Π°ΠΆΠ°ΡΠ° Π»ΠΈ ΠΎΠ½Π°. Π Π½Π°ΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½Ρ. Π’Π°ΠΊΠΆΠ΅ Π² MonoGame Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·Π½Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π² MonoGame Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (KeyboardState) ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Key, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π±ΡΠ»ΠΈ Π²Π·ΡΡΡ Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ.
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
- ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° (Keyboard), ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·:
- ΠΠ΅ΡΠΎΠ΄ Update - ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
- Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ State - ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
- Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ (KeyboardState).
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ 2 ΡΠ²ΠΎΠΉΡΡΠ²Π°:
- Π’Π΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ (CurrentState)
- ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ (PrevState)
Π ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠ° Π»ΠΈ Π΄Π°Π½Π½Π°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°Π²ΠΈΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ (IsKeyDown)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΠΏΡΡΠ΅Π½Π° Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°Π²ΠΈΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ (IsKeyUp)
- ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π²ΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΡΡ ΠΊΠ»Π°Π²ΠΈΡ (GetPressedKeys)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±ΡΠ»Π° Π»ΠΈ Π½Π°ΠΆΠ°ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π° ΡΡΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° (Ρ.Π΅. Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° Π½Π΅ Π½Π°ΠΆΠ°ΡΠ°) (IsKeyPressedRightNow)
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±ΡΠ»Π° Π»ΠΈ ΠΎΡΠΏΡΡΠ΅Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π° ΡΡΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° (Ρ.Π΅. Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ°) (IsKeyReleasedRightNow)
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ - ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π½Π°ΠΆΠ°ΡΠ° Π»ΠΈ ΠΎΠ½Π° ΡΠ΅ΠΉΡΠ°Ρ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠ»Π°ΡΡΠ°:
Π ΠΈΡΡΠ½ΠΎΠΊ 9. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π²ΠΎΠ΄Π°.
ΠΠ°ΡΠ°ΡΡΡΡ Π² ΠΈΠ³ΡΠ°Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΊΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠΈ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΎΡΡΡ, Π±Π΅Π³Π°ΡΡ, ΠΏΡΡΠ³Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ (Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΡΡΠΆΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ°Ρ). Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΈΠ»ΠΈ ΠΆΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π²ΠΈΠΆΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΈΠ³ΡΠΎΠΊΠ° ΠΈ Π΄ΡΡΠ³ΡΡ ΠΈΠ³ΡΠΎΠ²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ, ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 10. ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ (StateMachine).
Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΡΠ΅ΠΊΡΡΡΡ - Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΉ ΡΡΠ°ΠΏ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠ°Ρ 2D ΠΈΠ³ΡΠ°, Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΠΊΡΡΡΡ. ΠΠ°ΠΆΠ΅ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΡΡ ΠΌΠ°Π»ΠΎ, ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ³ΡΡ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Ρ Π²Π°ΡΠΈΡ ΡΠ΅ΠΊΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ. Π ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ΅, Π²ΡΠ΅ ΡΡΠΈ ΡΠ΅ΠΊΡΡΡΡΡ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠ°ΡΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ - ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π·ΡΡΡ ΠΈ ΡΠΊΠ»Π΅ΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ΠΊΡΡΡΡΡ Π² ΠΎΠ΄Π½Ρ Π±ΠΎΠ»ΡΡΡΡ, Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΈΠ· ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅(Π·Π°Π½ΠΈΠΌΠ°ΡΡΠ΅Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ) ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΡΠ΅ΠΊΡΡΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ.
ΠΠ±ΡΡΠ½ΠΎ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠΎΡΠΌΠ°ΡΡ: xml/json, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
- ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ°ΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ», ΡΡΠΎ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ - Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
- Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π½, Ρ.Π΅. Π΅ΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠ΅ΠΊΡΡΡΡΡ Π²Ρ ΠΎΡΠΈΠ±Π΅ΡΠ΅ΡΡ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± - Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΠΌΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ΄, Ρ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈΠ· ΡΠ΅ΠΊΡΡΡΡ, Ρ.Π΅. Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΏΠΎ Π±Π»ΠΎΠΊΠ°ΠΌ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ ΡΡΠ°Π·Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (dll), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π΄Π°ΠΆΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½ΠΈΡ .
ΠΠ»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΡΡΡΡ Π² NutPacker Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ SpriteSheetPacker, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C#, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
NutPacker ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΏΡΠ°ΠΉΡΠΎΠ² (ISpriteSheet), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²Π½ΡΡΡΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ/ΡΠ°ΠΉΠ»ΠΎΠ² (ITileSet) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π³ΡΡΠΏΠΏΡ ΡΠΏΡΠ°ΠΉΡΠΎΠ² (ISpriteGroup) Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ:
- ISpriteSheet:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅:
- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² - ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² (Length)
- ΠΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ, Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ.
- ITileSet ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² - ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΠΈΠ»ΠΈ ΠΆΠ΅ ITileSet, Ρ.Π΅. ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°ΠΊΠΈΡ ΡΠ΅ΠΊΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΏΡΠ°ΠΉΡΠ°.
- ISpriteGroup - ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡ ΡΠΏΡΠ°ΠΉΡΠΎΠ², Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ Π°ΡΠ»Π°Ρ:
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π²ΡΡΠΎΡΠ°/ΡΠΈΡΠΈΠ½Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - 216)
- ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
- Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ±Ρ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠ» ΡΡΠ΅ΠΏΠ΅Π½ΡΡ Π΄Π²ΠΎΠΉΠΊΠΈ
- ΠΡΡΡΡΠΏ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΡΡΡΡΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ)
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ³ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΡ Π΅ΡΠ΅ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ, Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ - NutPackerLib.
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ - OriginalNameAttribute, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΊΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΠΎΠ²Π½Ρ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π²Π°ΠΌ ΠΊΠ»Π°ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
- βAn Introduction to Physically Based Modeling: Rigid Body Simulation II - Nonpenetration Constraintsβ, by David Baraff
- βPhysics for Game Programmersβ, by Grant Palmer
- βAn Introduction to the Collision Detection Algorithmsβ, by Francisco Madera
- βReal-Time Collision Detectionβ, by Christer Ericson
- βGame Coding Completeβ, by Mike McShaffry, David Graham
- βComputational Geometryβ, by Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmar https://opengl-tutorial.org/assets/faq_quaternions/index.html
- https://gameprogrammingpatterns.com
- https://monogame.net/documentation & https://github.com/MonoGame/MonoGame
- https://github.com/craftworkgames/MonoGame.Extended
- https://randygaul.net & https://github.com/RandyGaul/tinyheaders & https://github.com/RandyGaul/ImpulseEngine
- spritesheetpacker.codeplex.com
- https://github.com/libgdx/libgdx