«Методическая разработка занятия в организации летнего отдыха «Создание игры "Пинг-Понг" на Java в среде Greenfoot»
Г.Северобайкальск МАОУ ДО «ДДТ «Эврика»
Педагог дополнительного образования
программирование на языке Java
Барабанщикова Анастасия Евгеньевна
«Методическая разработка занятия в организации летнего отдыха
«Создание игры "Пинг-Понг" на Java в среде Greenfoot»
Целевая аудитория: Дети 12–16 лет в организациях летнего отдыха. Продолжительность: 45–60 минут.
---
Цели и задачи:
- **Образовательная:**
- Познакомить с основами объектно-ориентированного программирования (ООП) на примере игры.
- Научить работать с классами, методами и обработкой событий в Greenfoot.
- **Развивающая:**
- Развивать логику и алгоритмическое мышление через создание игровой механики.
- Стимулировать креативность (дизайн спрайтов, правила игры).
- **Воспитательная:**
- Воспитывать умение работать в парах (тестирование друг у друга).
- Формировать интерес к самостоятельному изучению программирования.
---
**Оборудование и ПО:**
- Компьютеры с **Greenfoot** ([официальный сайт](https://www.greenfoot.org)).
- Готовые спрайты для ракетки и мяча (или рисование в Paint/GIMP).
- Карточки с примерами кода для подсказок.
---
**План занятия:**
**1. Вводная часть (10 мин)**
- **Объяснение игры "Пинг-Понг":**
- Два игрока управляют ракетками, отбивая мяч.
- Проигрывает тот, кто пропустит мяч.
- **Интерфейс Greenfoot:**
- Демонстрация создания классов (`Actor`, `World`).
- Показ готового примера (можно использовать стандартный сценарий из Greenfoot Gallery).
**2. Практическая часть (30 мин)**
**Задание:** Создать игру с двумя ракетками и мячом.
**Шаги:**
1. **Создание мира (класс `PongWorld`):**
```java
public PongWorld() {
super(600, 400, 1); // размерымира
setBackground("background.png"); // илицветнойфон
addObject(new Ball(), 300, 200); // добавлениемяча
addObject(new Paddle(1), 50, 200); // ракеткаигрока 1
addObject(new Paddle(2), 550, 200); // ракеткаигрока 2
}
```
2. **Класс `Paddle` (ракетка):**
-Управление:
```java
public void act() {
if (player == 1) {
if (Greenfoot.isKeyDown("W")) setLocation(getX(), getY() - 4); // вверх
if (Greenfoot.isKeyDown("S")) setLocation(getX(), getY() + 4); // вниз
} else {
if (Greenfoot.isKeyDown("UP")) setLocation(getX(), getY() - 4);
if (Greenfoot.isKeyDown("DOWN")) setLocation(getX(), getY() + 4);
}
}
```
3. **Класс `Ball` (мяч):**
- Движение и отскок:
```java
public void act() {
move(5); // скорость
if (isAtEdge() || getY() <= 0 || getY() >= getWorld().getHeight()) {
turn(180); // отскокотстен
}
if (isTouching(Paddle.class)) {
turn(180 + Greenfoot.getRandomNumber(30)); // случайныйугол
}
}
```
4. **Добавление счета (опционально):**
- При выходе мяча за границы:
```java
if (getX() <= 0 || getX() >= getWorld().getWidth()) {
Greenfoot.stop(); // конецигры
Greenfoot.playSound("game-over.wav");
}
```
**3. Завершение (10–15 мин)**
- **Соревнование:** Дети играют друг против друга на своих проектах.
- **Обсуждение:**
- Какие ошибки возникли? Как их исправили?
- Как можно усложнить игру (добавить ускорение мяча, бонусы)?
- **Награждение:** Победитель получает звание "Лучший игродел".
---
**Критерии оценки:**
- Работоспособность игры.
- Корректность обработки столкновений.
- Креативность (дополнительные функции, дизайн).
---
**Дополнительные идеи:**
- *Модификации:*
- Добавить звуки при отскоке.
- Создать AI для второго игрока.
- *Ресурсы:*
- Бесплатные звуки: [Freesound](https://freesound.org).
- Учебник по Greenfoot: [Документация](https://www.greenfoot.org/doc).
Этот сценарий сочетает обучение программированию с элементами геймификации, что идеально подходит для летнего лагеря!
Чтобы оставлять комментарии, вам необходимо авторизоваться на сайте. Если у вас еще нет учетной записи на нашем сайте, предлагаем зарегистрироваться. Это займет не более 5 минут.