Тема: створення комп’ютерної гри з двома об’єктами, управління одним з яких здійснює людина, а управління іншими здійснюється автоматично за допомогою комп’ютера мовою програмування Ruby.
Мета: сформувати предметні компетенції щодо технологій імітації руху та моделювання гри.
Учень повинен пояснювати:
Обладнання: комп'ютери з встановленими ОС, інтерпретатором мови Ruby і бібліотекою Ruby 2D, (дана) інструкція.
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності й готовності учнів до уроку.
2. Актуалізація опорних знань
Дати тлумачення вказівкам мовою Ruby.
require 'ruby2d' set title:"Гра «Пінг-понг»", background:"#008000", width: 780, height: 400 r0 = Rectangle.new(x:11, y:22, width: 333, height: 44, z: 0, color: "red") ball= Image.new("ball.png", x:11, y:22, z:1, width:20, height:20, color:"white") l=Line.new(x1:11, y1:22, x2:33, y2:44, width:5, color:'white', z:0) t0 = Text.new("New", x:11, y:11, z:0, size: 28, font: sf, color:"white") r = Random.new y = r.rand(y0..y1) on :key_held do |e| k=e.key end update do end show
Порівняти з очікуваним.
3. Інструктаж з ТБ
4. Вироблення практичних умінь і навичок
Для створення ігор зазвичай використовують спеціальні бібліотеки. Наприклад, Ruby 2D, знайомство з якою продовжимо на цьому уроці.
Завдання.
Описати порядок створення складових гри Пінг-Понг з відбиванням м'яча від бокових меж ігрового поля і двох ракеток, керування однією з яких здійснює людина, а керування іншою здійснює комп’ютерна програма.
Cтворити й налагодити програму для такої гри.
Код програми записати у файл Ваше_прізвище у теку, вказану вчителем.
Порядок створення складових гри Пінг-Понг бажано створити як результат конкурсу ідей. У поданому нижче очікуваному результаті порядок і нумерація кроків такі самі, що й у демонстраційному розв'язанні.
Задати значення змінних: стану гри (0), ширини (780) й висоти (500) вікна програми, ширини (10) й висоти (100) прямокутника — зображення ракетки, діаметр (20) круга — зображення м'яча, приріст ординати ракетки на одне оновлення екрану (3), поточних величин приросту абсциси (0) і ординати (0) круга за 1 такт оновлення екрану, верхніх меж приросту абсциси (5) і ординати (3) круга за 1 такт оновлення екрану, адреса використаного шрифту.
Створити обробник події стану натиснених клавіш "up", "down", що призводять до переміщення зображення ракетки відповідно вгору чи вниз, але без виходу за верхню й нижню межу ігрового поля.
Примітка. Усі наступні кроки виконувати у циклі оновлення вікна.
Якщо номер стану гри 0 (вкидання м'яча у напрямку ліворуч), розташувати білий круг у центрі поля, надати йому сталої горизонтальної швидкості ліворуч, випадкової вертикальної швидкості і перейти до стану гри з номером 1.
Якщо номер стану гри 1 (рух м'яча):
надати координатам ЛВК круга приростів;
врахувати можливість відбивання від горизонтальних меж поля:
складова швидкості по вертикалі змінює напрям на протилежний;
відрізок з кінцями у центрах кругів при русі з відбиванням і без нього перпендикулярний до межі і поділяється нею навпіл;
якщо найближча до лівого (правого) краю екрану точка білого круга перетнула білу обмежувальну лінію поза розташуванням прямокутника червоного (жовтого) прямокутника зображення ракетки програми (користувача), збільшити рахунок суперника на 1 у перейти до стану гри з номером 0 (2).
Якщо номер стану гри 2 (вкидання м'яча у напрямку праворуч), розташувати білий круг у центрі поля, надати йому сталої горизонтальної швидкості праворуч, випадкової вертикальної швидкості і перейти до стану гри з номером 1.
5. Підбиття підсумків уроку
Виставлення оцінок.
6. Домашнє завдання
Змінити наявну програму, додавши випадковість у вибір величини переміщення ракетки, керованої програмою. Інакше кажучи, надати можливість користувачу виграти.
Матеріал упорядковано Олександром Рудиком.