(Created page with " В Core Engine возможно создавать анимации текста, моделей, предметов в мире. === Базовая анимация...") |
(нет различий)
|
В Core Engine возможно создавать анимации текста, моделей, предметов в мире.
Рассмотрим базовый тип анимации.
Создать ее можно так:
var ani = new Animation.Base(x, y, z); //x, y, z - координаты
Однако просто анимация без настроек просто бессмыслена. Да и менять анимацию потом очень проблематично.
Создадим обновляемый обьект и анимацию внутри него:
//Создаем обьект
var ani_upd = {
//Задаем его координаты
x: 0,
y: 0,
z: 0,
//Обьект анимации
ani: {},
//Флажок инициализации
init: false,
//Функция инициализации анимации
init_animation: function(){
//Создаем анимацию
this.ani = new Animation.Base(this.x, this.y, this.z);
},
//Функция обновления анимации
update_animation: function(){
//Устанавливаем позицию анимации
this.ani.setPos(this.x, this.y, this.z);
},
//Обновление
update: function(){
//Если анимация не инициализирована
if (!this.init){
//Инициализировать
this.init_animation();
//Поднять флажок инициализации
this.init = true;
}
//Иначе
else{
//Обновляем анимацию
this.update_animation();
}
//Обновляем позицию анимации
this.x = Player.getPosition().x;
this.y = Player.getPosition().y+4;
this.z = Player.getPosition().z;
}
};
//При запуске в мир запускаем анимацию
Callback.addCallback("LevelLoaded", function(){
Updatable.addUpdatable(ani_upd)
});
Но в таком случае над вашей головой будет висеть кролик.
Чтобы настроить анимацию, нужно применить ее метод describe.
{
…
init_animation: function(){
//Создаем анимацию
this.ani = new Animation.Base(this.x, this.y, this.z);
//Настраиваем ее
this.ani.describe({
//Здесь могут находиться настройки анимации
//Можно установить существующий рендер
// (i) Перед тем, как написать этот код, запишите где-нибудь: var NativeEntityRenderType = ModAPI.requireGlobal("EntityRenderType"); Это позволит использовать рендеры из ModPE
render: NativeEntityRenderType.pig,
//А можно установить и свой собственный
renderAPI: ваш обьект рендера,
//Текстура анимации
skin: "/mob/pig.png",
//Остальные свойства ненужны
});
//Загружаем анимацию в мир
this.ani.load();
}
…
}
Теперь мы можем использовать нашу анимацию и отображать ее в мире.
Также можно создать изображение в мире предмета.
var ani_item = new Animation.Item(x, y, z);
В остальном эта анимация похожа на обычную, только настраивается она методом animation.describeItem
ani_item.describeItem({
//Настраиваем характеристики отоюражаемого предмета
id: 280,
count: 1,
data: 0,
//Рендерим палку
//Устанавливаем размер
size: 1,
//Устанавливаем выравнивание по оси x/y/z
rotation: "x\y\z",
//Убираем неровности, если отрисовывается несколько анимаций
notRandomize: true
});
Также в мире можно отображать в мире текст:
var ani_txt = new Animation.Text(x, y, z); //Настроим отображаемый текст ani_txt.setText(text);