Охрана труда:
нормативно-правовые основы и особенности организации
Обучение по оказанию первой помощи пострадавшим
Аккредитация Минтруда (№ 10348)
Подготовьтесь к внеочередной проверке знаний по охране труда и оказанию первой помощи.
Допуск сотрудника к работе без обучения или нарушение порядка его проведения
грозит организации штрафом до 130 000 ₽ (ч. 3 статьи 5.27.1 КоАП РФ).
Участие подтверждается официальными документами
  • Приказ Приказ о проведении
  • Положение Положение
  • Протокол Выписка из Протокола
  • Диплом Диплом победителя
  • Инновации Диплом за инновационную деятельность
  • Благодарность Благодарность
14.04.2025

МК "Моя первая игра в Greenfoot"

Барабанщикова Анастасия Евгеньевна
МАОУ ДО "ДДТ "Эврика"
Конкурсная работа

г.Северобайкальск МАОУ ДО «ДДТ «Эврика»

Педагог дополнительного образования

программирование на языке Java

Барабанщикова Анастасия Евгеньевна

МАСТЕР КЛАСС

«Моя первая игра в Greenfoot

Создание игры в Greenfoot

Greenfoot - это среда разработки, предназначенная для обучения объектно-ориентированному программированию на Java через создание игр и симуляций. В этом мастер-классе мы создадим простую игру, где игрок управляет персонажем, который должен собирать предметы, избегая врагов.

Подготовка к работе

  1. Установка Greenfoot:

    • Скачайте Greenfoot с официального сайта

    • Установите программу, следуя инструкциям установщика

    • Запустите Greenfoot

  2. Создание нового проекта:

    • Нажмите "Scenario" "New Java Scenario"

    • Введите имя проекта (например, "MyFirstGame")

    • Нажмите "Create"

Создание классов

1. Создание мира (World)

  1. Правой кнопкой мыши на "World" в панели классов → "New subclass..."

  2. Выберите изображение для фона (можно использовать стандартные или загрузить свои)

  3. Назовите класс (например, "GameWorld")

  4. Нажмите "OK"

2. Создание актера (Actor) - игрока

  1. Правой кнопкой на "Actor" → "New subclass..."

  2. Выберите изображение для игрока (например, краба из стандартных)

  3. Назовите класс "Player"

  4. Нажмите "OK"

3. Создание других актеров

Повторите процесс для:

  • "Food" - еда, которую нужно собирать

  • "Enemy" - враги, которых нужно избегать

Написание кода

1. Класс GameWorld

import greenfoot.*; // Импорт необходимых классов

public class GameWorld extends World

{

public GameWorld()

{

super(600, 400, 1); // Создание мира размером 600x400 пикселей

prepare(); // Вызов метода подготовки мира

}

private void prepare()

{

Player player = new Player(); // Созданиеигрока

addObject(player, 300, 200); // Добавление игрока в центр экрана

// Добавление 10 единиц еды в случайных местах

For(int i = 0; i < 10; i++) {

addObject(new Food(), Greenfoot.getRandomNumber(600), Greenfoot.getRandomNumber(400));

}

// Добавление 3 врагов в случайных местах

For (int i = 0; i < 3; i++) {

addObject(new Enemy(), Greenfoot.getRandomNumber(600), Greenfoot.getRandomNumber(400));

}

}

}

2. Класс Player

importgreenfoot.*; // Импорт необходимых классов

public class Player extends Actor

{

private int score = 0; // Счетигрока

public void act()

{

checkKeys(); // Проверка нажатия клавиш

checkCollision(); // Проверка столкновений

}

private void checkKeys()

{

// Движение с помощью стрелок

if(Greenfoot.isKeyDown("left")) {

setLocation(getX()-3, getY());

}

if(Greenfoot.isKeyDown("right")) {

setLocation(getX()+3, getY());

}

if(Greenfoot.isKeyDown("up")) {

setLocation(getX(), getY()-3);

}

if(Greenfoot.isKeyDown("down")) {

setLocation(getX(), getY()+3);

}

}

private void checkCollision()

{

//Проверкастолкновенияседой

if(isTouching(Food.class)) {

removeTouching(Food.class); // Удалениееды

score++; // Увеличениесчета

getWorld().showText("Score: " + score, 50, 25); // Отображениесчета

// Добавление новой еды

if(score % 5 == 0) {

getWorld().addObject(new Food(),

Greenfoot.getRandomNumber(getWorld().getWidth()),

Greenfoot.getRandomNumber(getWorld().getHeight()));

}

}

//Проверкастолкновениясврагом

if(isTouching(Enemy.class)) {

Greenfoot.playSound("game-over.wav"); // Звукпроигрыша

getWorld().showText("Game Over! Final Score: " + score, 300, 200);

Greenfoot.stop(); // Остановка игры

}

}

}

3. Класс Food

import greenfoot.*; // Импорт необходимых классов

public class Food extends Actor

{

public void act()

{

// Еда может вращаться случайным образом

if(Greenfoot.getRandomNumber(100) < 2) {

turn(Greenfoot.getRandomNumber(90) - 45);

}

move(1); // Медленноедвижение

// Если еда вышла за границы мира, появляется с другой стороны

if(isAtEdge()) {

turn(180);

}

}

}

4. Класс Enemy

import greenfoot.*; // Импорт необходимых классов

public class Enemy extends Actor

{

public void act()

{

followPlayer(); // Преледованиеигрока

if(isAtEdge()) {

turn(180); // Разворот при достижении края

}

}

private void followPlayer()

{

//Поискигрокавмире

Player player = (Player)getWorld().getObjects(Player.class).get(0);

//Поворотвсторонуигрока

turnTowards(player.getX(), player.getY());

// Движение к игроку

move(2);

}

}

Добавление звуков

  1. Загрузите звуковые файлы (например, game-over.wav) в проект

  2. Перетащите их в панель "Sounds" в Greenfoot

  3. Используйте Greenfoot.playSound("имя_файла.wav") в коде

Тестирование и запуск

  1. Нажмите кнопку "Compile" для проверки кода на ошибки

  2. Нажмите "Run" для запуска игры

  3. Управляйте персонажем с помощью стрелок

  4. Собирайте еду и избегайте врагов

Советы по улучшению игры

Добавление уровней:

if(score == 10) {

Greenfoot.setWorld(new Level2());

}

Жизни игрока:

private int lives = 3;

//Вметоде checkCollision класса Player

if(isTouching(Enemy.class)) {

lives--;

if(lives <= 0) {

// Конец игры

}

}

  1. Разная еда с разными очками:
    Создайте подклассы Food (например, Apple, Banana) с разными значениями score

  2. Пауза в игре:

if(Greenfoot.isKeyDown("space")) {

Greenfoot.delay(100); // Пауза на 100 кадров

}

Таймер:

private int time = 1000;

public void act() {

time--;

getWorld().showText("Time: " + time, 550, 25);

if(time <= 0) {

// Конец игры по времени

}

}

Публикация игры

  1. Нажмите "Scenario" → "Share..."

  2. Выберите платформу для публикации (Greenfoot Gallery или экспорт)

  3. Следуйте инструкциям для завершения публикации

Теперь у вас есть рабочая игра в Greenfoot! Вы можете продолжать развивать её, добавляя новые функции и улучшая геймплей.

Свидетельство участника экспертного совета жюри

Свидетельство можно заказать сразу, как Вы оставите не менее 3 объективных комментариев в этом разделе сайта.

У вас недостаточно прав для добавления комментариев.

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