МК Волк ловит яйца и вербу
г.Северобайкальск МАОУ ДО «ДДТ «Эврика»
Педагог дополнительного образования
программирование на языке Java
Барабанщикова Анастасия Евгеньевна
Мастер-класс:
игра на Java
"Волк с корзинкой собирает пасхальные яйца и вербу"
Цели:
Познакомить учеников с основами программирования в Greenfoot.
Научить создавать анимацию и управление персонажем.
Развить творческое мышление, используя праздничную тематику.

Шаги мастер-класса:
1. Подготовка проекта
Откройте Greenfoot и создайте новый проект. Назовите его, например, "EasterWolf".
Создайте новый мир (World) с фоном, который будет напоминать весенний пейзаж (например, зеленая трава, небо). Размер мира может быть 600x400 пикселей.

2. Создание классов
Класс "Волк с корзинкой" (WolfWithBasket): Это будет главный персонаж, которым управляет игрок. Волк будет двигаться влево и вправо по экрану, чтобы собирать падающие объекты.
Добавьте изображение волка с корзинкой (можно нарисовать или найти в интернете).
Напишите код для управления волком с помощью клавиш клавиатуры (например, стрелки влево и вправо).

//Коддлякласса WolfWithBasket
import greenfoot.*;
public class WolfWithBasket extends Actor {
public void act() {
move();
checkCollision();
}
public void move() {
if (Greenfoot.isKeyDown("left")) {
setLocation(getX() - 5, getY());
}
if (Greenfoot.isKeyDown("right")) {
setLocation(getX() + 5, getY());
}
}
public void checkCollision() {
if (isTouching(EasterEgg.class)) {
removeTouching(EasterEgg.class);
// Увеличить счетчик баллов
((MyWorld) getWorld()).updateScore(1); // Добавляем 1 балл за яйцо
}
if (isTouching(Willow.class)) {
removeTouching(Willow.class);
// Увеличить счетчик баллов
((MyWorld) getWorld()).updateScore(2); // Добавляем 2 балла за вербу
}
}
}
Класс "Пасхальное яйцо" (EasterEgg): Этот объект будет падать сверху вниз. Игрок должен поймать его волком.
Добавьте изображение пасхального яйца.
Напишите код, чтобы яйцо падало вниз и исчезало, если его не поймали.


//Коддлякласса EasterEgg
import greenfoot.*;
public class EasterEgg extends Actor {
public void act() {
setLocation(getX(), getY() + 2); // Падение вниз
if (isAtEdge()) {
getWorld().removeObject(this); // Удаление, если достигло края
}
}
}
Класс "Верба" (Willow): Этот объект также будет падать сверху, но его нужно будет ловить отдельно. Можно добавить дополнительные баллы за вербу.
Добавьте изображение веточки вербы.
Напишите код, аналогичный пасхальному яйцу.

//Коддлякласса Willow
import greenfoot.*;
public class Willow extends Actor {
public void act() {
setLocation(getX(), getY() + 2); // Падение вниз
if (isAtEdge()) {
getWorld().removeObject(this); // Удаление, если достигло края
}
}
}
Добавление счета
Создайте класс "Счет" (Score) для отображения количества собранных объектов.
Добавьте код для обновления счета при сборе яиц и вербы.
//Коддлякласса Score
import greenfoot.*;
public class Score extends Actor {
private int score = 0;
public void act() {
setImage(new GreenfootImage("Счет: " + score, 24, Color.WHITE, Color.BLACK));
}
public void addScore(int points) {
score += points;
}
}
В классе мира (MyWorld) добавьте объект Score и метод для обновления счета.
// Код для класса MyWorld
import greenfoot.*;
public class MyWorld extends World {
private Score score;
public MyWorld() {
super(600, 400, 1);
prepare();
}
private void prepare() {
score = new Score();
addObject(score, 50, 30); // Размещаем счет в верхнем левом углу
addObject(new WolfWithBasket(), 300, 350); // Размещаем волка внизу
spawnObjects();
}
public void updateScore(int points) {
score.addScore(points);
}
public void spawnObjects() {
// Периодически добавляем яйца и вербу
if (Greenfoot.getRandomNumber(100) < 5) {
addObject(new EasterEgg(), Greenfoot.getRandomNumber(600), 0);
}
if (Greenfoot.getRandomNumber(100) < 3) {
addObject(new Willow(), Greenfoot.getRandomNumber(600), 0);
}
}
public void act() {
spawnObjects();
}
}
Завершение игры
Добавьте условие завершения игры, например, когда игрок соберет определенное количество объектов.
Выведите сообщение о победе.
// В классе MyWorld
public void act() {
spawnObjects();
if (score.getScore() >= 20) { // Условие победы
Greenfoot.stop();
showText("Поздравляем! Вы выиграли!", 300, 200);
}
}
. Запуск и тестирование
Запустите игру и протестируйте ее. Убедитесь, что волк двигается, собирает объекты, а счет обновляется.

Дополнительные идеи:
Добавьте анимацию волка (например, движение лап при ходьбе).
Создайте разные типы пасхальных яиц с разными баллами.
Добавьте препятствия, которые игрок должен избегать (например, падающие камни).

Этот мастер-класс станет увлекательным способом изучить программирование в Greenfoot, а волк с корзинкой добавит игре уникальности и праздничного настроения!
Чтобы оставлять комментарии, вам необходимо авторизоваться на сайте. Если у вас еще нет учетной записи на нашем сайте, предлагаем зарегистрироваться. Это займет не более 5 минут.