Отправлено 6 окт. 2016 г., 10:42 пользователем Dimitrijs Fedotovs
[
обновлено 16 окт. 2016 г., 13:48
]
Пройденый материал- События спрайтов
- Манипулации с событиями и спрайтами
- Смена фонов игры
Разобрались с событиями, которые могут происходить у спрайта
- Инициализация - onInit
- На каждый кадр (фрейм) - onLoop
- При столкновении (коллизии) с другими спрайтами - onCollision
Примеры, которые использовали на занятии:Огненный мяч, который улетает (за экран) в заданном направлении // зарегистрировать символ 'o' для создания шарика (BallSprite)
register('o', BallSprite::new)
// при инициализации "включить" огненный хвост
.onInit(b -> b.setFlame(true))
// при инициализации повернуть шар "лицом" на юго-восток
.onInit(b -> b.setRotation(Direction.SE))
// при инициализации указать направление движения на запад
.onInit(b -> b.setDirection(Direction.W))
// при инициализации указать скорость движения 10 клеток в секунду
.onInit(b -> b.setSpeed(10))
// на каждый кадр сдвигать шарик в указанном направлении с указанной скоростью
.onLoop(ai::followDirection);
Мяч, который отскакивает от других спрайтов // зарегистрировать символ 'o' для создания шарика (BallSprite)
register('o', BallSprite::new)
// при инициализации указать направление движения на северо-восток
.onInit(b -> b.setDirection(Direction.NE))
// при инициализации указать скорость движения 10 клеток в секунду
.onInit(b -> b.setSpeed(10))
// на каждый кадр сдвигать шарик в указанном направлении с указанной скоростью
.onLoop(ai::followDirection)
// на каждый кадр поворачивать шарик "лицом" по направлению движения
.onLoop(ai::turnToDirection)
// при столкновении с другим (любым) спрайтом - совершить отскок
.onCollision(ai::bounce);
Блок, который исчезает, если в него врезается другой (любой) спрайт // зарегистрировать символ 'x' для создания блока (BlockSprite)
register('x', BlockSprite::new)
// если что-то врезалось в блок - блок перестает существовать (halt)
.onCollision(ai::halt);
Мяч отскакивает от других спрайтов и исчезает, если врезается в спрайт огняКод аналогичный предыдущему примеру, только с дополнительной строчкой в конце, указывающей, что надо шарику исчезнуть, если врезался в огонь: // при столкновении со спрайтом огня - удалить шарик из игры
.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); DirectionНаправления, которые можно использовать ![I, Andrew pmk [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Compass_Rose_English_North.svg/480px-Compass_Rose_English_North.svg.png) Смена фонаНа данный момент существуют три различных фона, которые можно поменять при помощи команды setBackground: - Пустыня - setBackground(new DesertBackground());
- Горы и вулкан - setBackground(new VolcanoBackground());
- Инопланетная тема - setBackground(new SpaceBackground());
Дополнительные примерыВид ловушки (огонь, лава, вода)register('w', TrapSprite::new) .onInit(t -> t.setMaterial(TrapMaterial.FIRE));
Так же можно использовать другие материалы ловушки: Цвет шарикаregister('o', BallSprite::new) .onInit(b -> b.setColor(BallColor.YELLOW));
Возможны следующие цвета: Материал блока
register('=', BlockSprite::new) .onInit(b -> b.setMaterial(BlockMaterial.METAL));
Возможны следующие варианты: - AMBER
- CANDY
- METAL
- BUBBLESTONE
- GREENSTONE
- CITRINE
- BRICK
- SAND
- CONCRETE
Цвет стены
register('#', WallSprite::new) .onInit(b -> b.setColor(WallColor.BLUE));
Возможны следующие цвета: Домашнее заданиеДля родителейДля детей- Повторить все что делали на занятии, но по мере возможности самостоятельно
|
|