Розібратися що таке відображення у комп'ютерних іграх
Теорія
Підсумки
Коли ви переміщуєте спрайти в ігровому середовищі, вони можуть зіткнутися зі іншими предметами, які в реальному житті повинні змусити їх підстрибувати або рухатися певним чином. Щоб зробити рух спрайтів правдоподібним, вони повинні дотримуватися тих самих правил фізики, які існують у реальному світі.
Коли ви кидаєте щось у «повітря» у своїй програмі, це має діяти так, ніби сила тяжіння тягне це назад на землю. Коли ви кидаєте об’єкт об стіну, він має відскочити назад у реалістичній манері.
Термін «фізика гри» описує набір правил, застосованих до ваших об’єктів, які змушують їх поводитися (принаймні певною мірою) відповідно до законів фізики. У цьому розділі буде описано, як змусити ваші спрайти рухатися подібно до об’єктів реального світу, які відскакують від плоскої поверхні або підкидаються чи вистрілюють у повітря.
Ми побачимо «відображення», коли дивимось на своє зображення в дзеркалі або в спокійному озері в сонячний день. Те, що ми бачимо в таких випадках, — це відбиття світла, яке відбивається від поверхні й повертається до нас. М'яч, який вдаряється об плоску поверхню, відбиватиметься точно так само. Ми використовуємо термін «відображення», щоб описати те, що відбувається з напрямком об’єкта під час його відбиття від плоскої поверхні.
Якщо ви коли-небудь відбивали м’яч від землі, ви знаєте, що кут, під яким ви кидаєте м’яч, визначає напрямок, у який він відскочить. Якщо кинути його прямо вниз, він підскочить прямо вгору. Якщо кинути його під великим кутом, він відскочить під великим кутом.
Кут відбиття визначається законом фізики, який називається «Законом відбиття». Цей закон говорить, що будь-який об’єкт, який вдаряється об плоску поверхню під кутом, відіб’ється від плоскої поверхні під тим самим кутом з іншого боку перпендикуляра (лінії перетину прямих). Це показано на малюнку.
Кут «A», який утворює вхідний об’єкт із перпендикулярною лінією, відповідатиме такому самому куту «A» з іншого боку, коли об’єкт виходить у вихідному напрямку.
Рефлексія використовується в програмі Pong. М’яч Pong відскакує (або відбивається) від верху та боків екрана відповідно до закону відображення.
Спосіб створення відображення прямої горизонтальної або вертикальної лінії в грі простий. Щоб відобразити об’єкт від будь-якої вертикальної лінії (наприклад, лівої чи правої сторони екрана), просто поверніть напрямок X об’єкта на протилежний. Просто помножте напрямок X на мінус 1. Щоб відобразити об’єкт від будь-якої горизонтальної лінії (наприклад, верхньої чи нижньої частини екрана), просто поверніть напрямок Y об’єкта на протилежний. Знову ж таки, це можна зробити, помноживши напрямок Y на мінус 1.
У наступному прикладі демонструється відображення вертикальної та горизонтальної лінії (тут у коді mySprite - це спрайт):
на Visual Basic:
' Щоб відскочити від вертикальної лінії, змініть напрямок X
mySprite.Velocity.X = mySprite.Velocity.X * -1
' Щоб відскочити від горизонтальної лінії, змініть напрямок Y на зворотний
mySprite.Velocity.Y = mySprite.Velocity.Y* -1
на Visual C#:
// Щоб відскочити від вертикальної лінії, змініть напрямок X
mySprite.Velocity.X = mySprite.Velocity.X * -1;
// Щоб відскочити від горизонтальної лінії, змініть напрямок Y на зворотний
mySprite.Velocity.Y = mySprite.Velocity.Y* -1;
Зверніть увагу, що ми лише змінюємо напрямок об’єкта, але не швидкість. Спрайт рухатиметься швидше або повільніше, якщо ви збільшите або зменшите величину швидкість по X або Y. Але лише зміна знаку компонентів X або Y змусить його рухатися з тією самою швидкістю в іншому напрямку.
Приклад програми з відображенням кількох об'єктів - лінії та прямокутника. Це приклад, коли просто змінити координату на протилежне значення не достатньо.
Після вивчення матеріалів уроку ви повинні надати звіт (заповнити просту форму).