Пройденный материал- Вспомнили как создавать уровень игры из стен, блоков, огня и шарика
- Начали разбираться о том, что такое событие, какие события бывают и как на них реагировать.
- onInit - событие, срабатывающие в самом начале, перед тем, как отобразить первый кадр игры.
- onLoop - событие, срабатывающее на каждый кадр игры
- onCollision - событие, срабатывающее если спрай сталкивается с другим спрайтом.
Примеры, которые использовали на занятии
Шарик, который улетает за экран: // зарегистрировать символ 'o' для создания шарика (BallSprite)
register('o', BallSprite::new)
// при инициализации "включить" огненный хвост
.onInit(b -> b.setFlame(true))
// при инициализации указать скорость движения 10 клеток в секунду
.onInit(b -> b.setSpeed(10))
// на каждый кадр сдвигать шарик в указанном направлении с указанной скоростью
.onLoop(ai::followDirection); Мяч, который отскакивает от других спрайтов // зарегистрировать символ 'o' для создания шарика (BallSprite)
register('o', BallSprite::new)
// при инициализации указать скорость движения 10 клеток в секунду
.onInit(b -> b.setSpeed(10))
// на каждый кадр сдвигать шарик в указанном направлении с указанной скоростью
.onLoop(ai::followDirection)
// на каждый кадр поворачивать шарик "лицом" по направлению движения
.onLoop(ai::turnToDirection)
// при столкновении с другим (любым) спрайтом - совершить отскок
.onCollision(ai::bounce);
Мяч отскакивает от других спрайтов и исчезает, если врезается в спрайт огняКод аналогичный предыдущему примеру, только с дополнительной строчкой в конце, указывающей, что надо шарику исчезнуть, если врезался в огонь: // при столкновении со спрайтом огня - удалить шарик из игры
.onCollision(ai::halt, TrapSprite.class);
Мяч, следующий за курсором мышки // зарегистрировать символ 'o' для создания шарика (BallSprite)
register('o', BallSprite::new)
// при инициализации указать скорость движения 10 клеток в секунду
.onInit(b -> b.setSpeed(10))
// на каждый кадр сдвигать шарик по координатам X и Y // в направлении курсора мышки, с указанной скоростью
.onLoop(ai::followMouseXY)
// на каждый кадр поворачивать шарик "лицом" по направлению к курсору мышки
.onLoop(ai::turnToMouse)
// при столкновении с другим (любым) спрайтом - остановиться
.onCollision(ai::stopXY); Домашнее заданиеДля родителейДля детей- Повторить все что делали на занятии, но по мере возможности самостоятельно
- Можно "подсмотреть" чем занималась другая группа 2 октября 2016 г. Там чуть-чуть больше информации.
|