Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 25

Автор Майкл ΠœΠΎΡ€Ρ€ΠΈΡΠΎΠ½

Π’ ΠΊΠΎΠΏΠΈΠ»ΠΊΡƒ Π˜Π³Ρ€ΠΎΠΊΠ°

НСкоторыС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ этому Π½Π΅Ρ‚. Если Π²Ρ‹ создаСтС ΠΌΠΈΠ΄Π»Π΅Ρ‚ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ спокойно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π΅Π³ΠΎ возмоТности. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соврСмСнныС коммСрчСскиС ΠΈΠ³Ρ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Tony Hawk\'s Pro Skater, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»Π°Π²ΠΈΡˆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ.

Другая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getKeyStates() Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ холст Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ. Если ΠΈΠ³Ρ€Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько экранов, Ρ‚ΠΎ клавиши для ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ холста Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹, ΠΏΠΎΠΊΠ° холст Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ экран.

Бнова о классС Sprite

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ эта Π³Π»Π°Π²Π° посвящСна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, стоит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΉΡ‚ΠΈ Π² сторону ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ спрайтовой Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ интСрСсный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. ΠœΡ‹ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ рассмотрим класс Sprite ΠΈ научимся Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ столкновСния спрайтов ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ спрайты с нСсколькими Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ²Ρ‹ΠΌΠΈ изобраТСниями.

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний спрайтов

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

β–Ί ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²;

β–Ί ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²;

β–Ί ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний с использованиСм Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MIDP API для обнаруТСния столкновСний, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Sprite(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ collidesWith(). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² отличаСтся Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° провСряСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ collidesWith() провСряСт столкновСниС Π΄Π²ΡƒΡ… спрайтов:

CollidesWith(Sprite s, boolean pixelLevel)

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

shipSprite.collidesWith(roidSprite, true);

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄:

shipSprite.collidesWith(roidSprite, false);

БущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ defineCollisionRectangle() ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€. НапримСр, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ астСроида составляСт 42 35 пиксСлСй, Ρ‚ΠΎ, вСроятно, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСньший ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 32 25 пиксСлСй. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ эту Π·Π°Π΄Π°Ρ‡Ρƒ:

alienSprite.defineCollisionRectangle(5, 5, 32, 35);

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для обнаруТСния столкновСний, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ стороны Π½Π° 5 пиксСлСй, поэтому ΠΎΠ½ остаСтся Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ спрайту. На рис. 6.1 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ астСроида с ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ.

Рис. 6.1. Π£ΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ограничСния изобраТСния астСроида ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ столкновСния

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ defineRectangleCollision() сказываСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ столкновСния с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния. Π Π°Π½Π΅Π΅ я упомянул, Ρ‡Ρ‚ΠΎ сущСствуСт Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° collidesWith(), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² классС Sprite, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

collidesWith(Image image, int x, int y, boolean pixelLevel) collidesWith(TiledLayer t, boolean pixelLeve)

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

Π Π°Π±ΠΎΡ‚Π° с Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ спрайтами

Другая интСрСсная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ класса Sprite – это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ²ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. Из ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Ρ‹ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ фрСймовая анимация создаСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ случаС спрайта фрСймовая анимация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния Π΅Π³ΠΎ внСшнСго Π²ΠΈΠ΄Π°, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, спрайт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ своС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° экранС, Π½ΠΎ ΠΈ внСшний Π²ΠΈΠ΄. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ спрайта – это астСроид, лСтящий Π² космосС. Π­Ρ„Ρ„Π΅ΠΊΡ‚ двиТСния достигаСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ спрайта с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° эффСкт вращСния – Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ²ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ спрайта.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΡ‹ спрайта, располоТитС ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния Π² хронологичСском порядкС. На рис. 6.2 ΠΏΠΎΠΊΠ°Π·Π°Π½ спрайт астСроида, Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· 14 Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ², ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅.

Рис. 6.2. НСсколько Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² спрайта ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ иллюзию вращСния астСроида

ВСроятно, слоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ этот эффСкт достигаСтся ΠΏΡ€ΠΈ быстрой смСнС Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ спрайт, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² конструктору спрайта ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π€Ρ€Π΅ΠΉΠΌΡ‹ изобраТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ спрайта, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 6.2:

roidSprite = new Sprite(Image.createImage(Β«/Roid.pngΒ»), 42, 35);

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ опрСдСляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Ρ€Π΅ΠΉΠΌΠ° Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ – 42Ρ…35 пиксСлСй. Π€Ρ€Π΅ΠΉΠΌΡ‹ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Π² Π΄Π²ΡƒΡ… направлСниях. Если Π²Ρ‹ располагаСтС Ρ„Ρ€Π΅ΠΉΠΌΡ‹ ΠΏΠΎ сСткС, Ρ‚ΠΎ нумСрация происходит слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ· (рис. 6.3).

Рис. 6.3. Располагая Ρ„Ρ€Π΅ΠΉΠΌΡ‹ изобраТСния Π² сСткС, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ сСткС осущСствляСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ·

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ²ΡƒΡŽ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ спрайта, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ nextFrame() ΠΈ prevFrame():

roidSprite.nextFrame();

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

int [] sequence = {0, 1, 2, 3, 3, 3, 2, 1};

ΠŸΡΡ‚Ρ‹ΠΉ элСмСнт этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ – это Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌ изобраТСния. Если сСйчас отобраТаСтся пятый Ρ„Ρ€Π΅ΠΉΠΌ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ getFrame() Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4 (отсчСт вСдСтся ΠΎΡ‚ 0), Π° Π½Π΅ Π½ΠΎΠΌΠ΅Ρ€ Ρ„Ρ€Π΅ΠΉΠΌΠ° Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ setFrame() позволяСт Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс Ρ„Ρ€Π΅ΠΉΠΌΠ°. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² setFrame(6), Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 6, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 2 – это Π½ΠΎΠΌΠ΅Ρ€ Ρ„Ρ€Π΅ΠΉΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит ΡˆΠ΅ΡΡ‚Ρ‹ΠΌ ΠΏΠΎ счСту. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ эти Π½ΠΎΠΌΠ΅Ρ€Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ мСстам Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ Π²Π·ΠΌΠ°Ρ…ΠΎΠ² ΠΊΡ€Ρ‹Π»ΡŒΠ΅Π², Π²Π·Ρ€Ρ‹Π²ΠΎΠ² ΠΈ Ρ‚. ΠΏ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setFrameSequence() Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ отобраТСния Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ². Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° цСлочислСнный массив. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для спрайта с ΠΏΡ‚ΠΈΡ†Π΅ΠΉ:

birdSprite.setFrameSequence(sequence);

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ пониманию Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ спрайтов, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ дальшС! ΠžΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒ Π³Π»Π°Π²Ρ‹ посвящСна ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° UFO, рассмотрСнного Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅. Π’Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ спрайта ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄. Π’Π΅Π΄ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Π΅ΠΌ сто Ρ€Π°Π· ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ!

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ UFO 2

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ UFO ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Ρ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ спрайтов. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ пСрСвСсти ΠΌΠΈΠ΄Π»Π΅Ρ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ астСроиды – прСпятствия Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΠ›Πž. Π― Π±ΡƒΠ΄Ρƒ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ UFO 2.

ΠœΠΈΠ΄Π»Π΅Ρ‚ UFO 2 содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

β–Ί ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ;

β–Ί Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ астСроиды, Π»Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ экрану;

β–Ί Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ столкновСний Π»Π΅Ρ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с астСроидами.

Π’Ρ‹ ΡƒΠΆΠ΅ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это!

НаписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

Класс ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ UFO 2 Π½Π΅ измСнился ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ нСпосрСдствСнно ΠΊ измСнСнию класса UFOCanvas. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ – это Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… спрайтов астСроидов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² массивС Ρ‚ΠΈΠΏΠ° Sprite: