X-PDF

Конспект занятия Eclipse. Игровой цикл

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

Игровойцикл

Каждой игре нуженигровой цикл, иначе не будет никаких изменений, будет просто неподвижноеизображение.

Задача:добавить счетчик кадров в секунду.

Уберем метод repaint()– перекраска из всех вызовов, и пропишем его в методе рисования. Этот блок кодаявляется циклом. Изменений в проекте не будет.

Работаем в классе GamePanel.Добавим переменную private int frames = 0;

(frames – кадры).

Начнем ее считатьв методе рисования. frames++;

Добавим какой –нибудь тип проверки, который будет проверять сколько кадров 2 секунды.

Пропишемусловиеif(System.currentTimeMillis()-lastCheck >= 1000){

 

(System.currentTimeMillis())—  возвращает время в миллисекундах

1сек = 1000мс

Затем,какой время было при проверке lastCheck.

Послепроверяем >= 1000.

Условие:если с момента последней проверки кадра прошла одна секунда, мы выполняем новуюпроверку кадров. Сохраните новую проверку кадров в секунду как последнююпроверку в секунду и повторите.

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

privatelong lastCheck = 0;

Long– это самая большая с точки зрения размера переменная (8 байтов памяти). Онаможет принимать значения от -9223372036854775808 до 9223372036854775807.

В условии пропишем,что последняя проверка равна текущему времени.

lastCheck= System.currentTimeMillis();

Выведем подсчеткадров в консоль.

System.out.println(FPS:+ frames);

Запустим.В итоге у нас примерно около 1000 кадров в секунду.

Следующее,что мы сделаем: добавим визуальныеэффекты для нашего прямоугольника, чтобы он перемещался без нашего участия.Продолжаем работать в классе GamePanel.

Добавим метод вметоде перерисовке updateRectangle() — обновить прямоугольник. Создадимэтот метод.

Вметоде пропишем xDelta,yDelta.

Прямоугольник унас исчез.

Добавим переменныеxDir(направлениепо x),xDir(направлениепо y).

privateint xDir = 1, yDir = 1;

В методеобновления прямоугольника добавим условие:

if(xDelta> 400 || xDelta < 0)

                   {

                            xDir*= -1;

                   }

Если xDelta больше ширины (высоты) окна или xDelta меньше 0, то xDir меняетнаправление на обратное (1*-1 = -1, -1*-1 = 1).

Сделаем все то жесамое для yDelta.                                        x*= y

                                                   x = x*y

Запустим.Прямоугольник двигается по диагонали.

Замедлим движение прямоугольника.Поменяем тип int  на тип float (числа с плавающей точкой).

private float xDelta =100, yDelta = 100;

         private floatxDir = 1, yDir = 1;

float: хранитчисло сплавающейточкой от-3.4*1038 до3.4*1038 и занимает4 байта.

В методе рисованияпрямоугольника будет ошибка, так как он принимает только тип int,поэтому сделаем преобразование.

g.fillRect((int)xDelta,(int)yDelta, 200, 50);

Изменим значения xDir,yDir.

private float xDir =0.01f, yDir = 0.01f;

Запустим.

Добавим большецветов.

g.setColor(newColor(150,20,90)); —  новыйкомпозитный цвет.

Импорт пакета сцветом.

Запустими посмотрим какой цвет получим.

Теперь,мы сделаем так, чтобы прямоугольник менял цвет при смене направления.

Сохраним наш новыйцвет в глобальной переменной.

private Color color = newColor(150,20,90);

Объявимэту переменную.

Сделаем цветслучайным, для этого создаем новый метод.

color= getRndColor(); — Создать метод

Создадим случайныйобъект.

private Random random; 

random= new Random();

Импорт пакета с Random.

И с помощью этогослучайного объекта мы можем получать случайные числа.

random.nextInt(255);—  диапазон цвета 0-255.

Нам нужно сделатьто же самое для yDelta.

Запустим.

 

Разговоры о важном

Технологическая карта урока учителя математики МКОУ «СОШ №9 г.Нижнеудинск» Черных Елены Викторовны   Предмет, класс Алгебра, 9А класс Тема урока

Сценарий праздничного концерта, посвященного 9 мая для воспитанников старших и подготовительных групп.

Сценарий праздничного концерта, посвященного 9 мая длявоспитанников старших и подготовительных групп.                                                                                       Подготовила                                                                        Старостина Татьяна Георгиевна                                                                           музыкальный руководитель Цель: Донестидо детей значение

Методическая разработка Урока Мужества, посвященного освобождения Ставрополя от немецко–фашистских захватчиков.

Методическая разработка Урока Мужества, посвященного освобожденияСтаврополя от немецко–фашистских захватчиков. Цель:Создание условий для более глубокого ознакомления студентов с событиями ВеликойОтечественной войны

Урок по физике «Дисперсия света»

Государственноеказенное общеобразовательное учреждение «Вечерняя (сменная) школа приисправительно-трудовых учреждениях Самарской области» филиал №5