X-PDF

Дистанционные курсы для педагогов

Поделиться статьей

Конспектзанятия

Созданиеигры SnakeGame.

Для начала зайдемв класс MyWorld и изменим цвет фона. Получим доступ к фону мира, установим и сделаемзаливку фона черным цветом.

GreenfootImage image =getBackground();

 image.setColor(Color.BLACK);

Скомпилируем.

У нас должно быть2 игрока (2 змеи), они будут двигаться по экрану и съедать яблоки. Если один изигроков соберет определенное количество яблок, то выиграет игру. При этом онине должны врезаться в свой собственный хвост или в хвост партнера.

Нам нужно создатькласс игрока. Мы не будем добавлять изображение, создадим его сами. Для этого,нам нужно создать конструктор.

Игроки будут двухразных цветов.

Дадим наборпараметров игроку в конструкторе.

public Player (int r, intg, int b)

Мы знаем, длятого, чтобы был красный (255, 0, 0), зеленый (0,255,0), голубой (0, 0, 255).

Итак, мы хотимпоместить игроков в мир, для этого нам нужно добавить их в конструктор мира,так как они должны быть в начале игры. Но мы не хотим, чтобы они размещалисьлокально, только в конструкторе, поэтому создадим глобальные переменные.

Игроки у нас будутголубого и зеленого цветов.

Player bluePLayer = newPlayer (0,0,255);

Player greenPlayer = newPlayer (0,255,0);

Затем, поместимигроков в мир.

addObject(bluePlayer,450,300);

addObject(greenPlayer,150,300);

Скомпилируем.

Нам нужноустановить новый цвет, чтобы параметры конструктора были видны, и сделатьзаливку.

 

Затем, направим ихвверх.

setRotation(270);

И пропишем методдвижения. Создадим переменную скорости.

int speed= 3;

public void act()

    {

        move(speed);

    }

Скомпилируем изапустим.

Теперь, сделаем ихуправляемыми, пропишем метод проверки клавиш (направо, налево, вверх, вниз).

Скомпилируеми запустим.

Создадим хвост.Создадим новый подкласс актера Tail.

Добавим этот хвостк игрокам, для этого создадим счетчик.

int counter = 0;

ВподклассеPlayer.

Скомпилируеми запустим.

Теперь нашазадача, чтобы хвост был не бесконечный. Работаем в подклассе Tail.Создадим переменную, счетчик.

Если счетчикбольше 60, то получаем доступ к миру и удаляем хвост из него.

Скомпилируеми запустим.

Следующая задача,сделать разное управление змеям.

public Player(intplayer,int r, int g, int b)создадимномеригрока.

 int r,g,b,player

Представленная информация была полезной?
ДА
60.97%
НЕТ
39.03%
Проголосовало: 1532

 У нас их два,поэтому присвоим им номера 1 и 2.

 

 

ВподклассеMyWorld.

Player bluePlayer = newPlayer (1,0,0,255);

Player greenPlayer= new Player(2,0,255,0);           

В подклассе Playerпропишем разное управление 1 и 2 игроку.

Проверку клавишвынесем в отдельный метод checkKeys().

Скомпилируеми запустим.

Создадим счетчикиочков. Подкласс Counter.

В классе MyWorld,создадим глобальные переменные этих счетчиков для каждого игрока.

Counter blueCounter = newCounter();

Counter greenCounter =new Counter();

Поместим счетчик вмир.

Скомпилируем.

Нам нужноустановить изображение счетчика.

Заходим в подклассCounter.

Создадим конструктор. GreenfootImage(java.lang.String string, int size, Color foreground, Color background)(строка, размер шрифта,цвет переднего фона, цвет заднего фона).

Скомпилируем.

Создадимпеременную оценки и добавим ее к строке.

Создадим новыйметод подсчета очков.

Очки будутначисляться за съеденную еду.

Создаем новыйподкласс Food.

В нем будет точнотакой же код, как и у хвоста, копируем конструктор хвоста и вставляем в еду.

Теперь нам нужнодобавлять нашу еду случайным образом по всему экрану. Перейдем в подкласс MyWorld.

Создадим метод  act().Добавим еду в мир, она будет красного цвета. Будет случайная ширина и высотамира.

Увеличим размерымира. Соответственно и поменять значения расположений объектов.

Подкласс Player.

Создадим новыйметод eatFood().Указываем первого игрока.

Получаем доступмира в локальной переменной типа MyWorld.

Продублируем этодля второго игрока.

Скомпилируеми запустим, счетчик считает.

Затем, нам нужно,чтобы еда исчезала после того, как змеи ее съедает.

Подкласс Food.

Скомпилируем.

 


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
60.97%
НЕТ
39.03%
Проголосовало: 1532

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

ЯТТС-Рекомендации по написанию отчета по учебной и производственной практики-Гостинечное дело

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 60.97% НЕТ 39.03% Проголосовало: 1532


Поделиться статьей

ЮУрГУ-вопросы

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 60.97% НЕТ 39.03% Проголосовало: 1532


Поделиться статьей

ЮУГУ-Отчет_ПП-Машины непрерывного транспорта

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 60.97% НЕТ 39.03% Проголосовало: 1532


Поделиться статьей

ЮУГУ- Курсовой проект по электронике

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 60.97% НЕТ 39.03% Проголосовало: 1532


Поделиться статьей

ЮУГУ-ВКР-Обеспечение требований охраны труда на рабочем месте слесаря-ремонтника 5 разряда

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 60.97% НЕТ 39.03% Проголосовало: 1532


Поделиться статьей

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram
Заявка
на расчет