ByteBoss & BlockOutBabe
BlockOutBabe BlockOutBabe
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, БайтБосс. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠ»Π°, ΠΊΠ°ΠΊ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ участок ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄ Π² Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ? ΠŸΡ‹Ρ‚Π°ΡŽΡΡŒ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» просто прямой, Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈ пустоты. Как Π±Ρ‹ Ρ‚Ρ‹ структурировал ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Ρ‡Ρ‘Ρ‚ΠΊΠΎ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этих нСприятных сбоСв Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹?
ByteBoss ByteBoss
Бохраняй Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π² простом ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС структур Ρ‚Π°ΠΉΠ»ΠΎΠ². Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π°ΠΉΠ»Π΅ Ρ…Ρ€Π°Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ„Π»Π°Π³ столкновСния. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, ΠΏΡ€ΠΎΠΉΠ΄ΠΈ ΠΏΠΎ массиву ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, создай плоский список Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈ сохрани ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° уровня. Π’ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ просто ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈ ΠΏΠΎ этому списку, пропуская Ρ‚Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΏΠΎΠ·Π°Π΄ΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π’Π°ΠΊ Ρ‚Ρ‹ Π±ΡƒΠ΄Π΅ΡˆΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ O(n) Ρ‚Π°ΠΉΠ»ΠΎΠ² Π·Π° ΠΊΠ°Π΄Ρ€, Π±Π΅Π· динамичСского выдСлСния памяти ΠΈ поиска ΠΏΡƒΡ‚ΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ максимально эффСктивный Ρ†ΠΈΠΊΠ» обновлСния: ΠΎΠ±Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒ столкновСния, Π° Π·Π°Ρ‚Π΅ΠΌ отрисуй. Π€ΠΈΠ·ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ простой β€” фиксированный шаг Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ Π²Π΅ΠΊΡ‚ΠΎΡ€ скорости. Если Ρ‚Π΅Π±Π΅ понадобится Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ β€œΠ΄Π²Π΅Ρ€ΠΈβ€, вынСси это Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊ находится рядом с индСксом Π΄Π²Π΅Ρ€ΠΈ. Никакой Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ для ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части уровня. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ тСбя Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, ΠΈ Ρ‚Ρ‹ избСТишь Π·Π°ΠΈΠΊΠ°Π½ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ систСма Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚Π΅ΠΌ ΠΆΠ΅ самым Ρ‚Π°ΠΉΠ»Π°ΠΌ.