Летающие птицы

Я помню, как когда то играл в Unreal1 заканчивая первые уровни... По сценарию игры я был заключен в тюрьму, и затем я сумел выйти, и я вышел из пещеры. Я был поражен! Огромные наружные области с деревьями, травой и птицами, летающими высоко в небе...
Ниже код для птицы, которая может летать и кружить над вами:

action move_bird
{
    var init_pos; // позиция птицы
    var bird_speed; // скорость полёта
    var flying_distance;
    flying_distance = my.skill1;
    if (flying_distance == 0) {flying_distance = 2000;} // значение по умолчанию, расстояние полёта
    bird_speed = my.skill2;
    if (bird_speed == 0) {bird_speed = 5;} // значение по умолчанию,
скорость полёта
    my.passable = on;
    vec_set (init_pos.x, my.x); // сохранение начальной позиции птицы
    while (1)
    {
       temp.x = bird_speed * time;
       temp.y = 0;
       temp.z = 0;
       move_mode = ignore_passable;
       my.skill40 += ent_move (temp, nullvector); // движения и повороты
       if (my.skill40 > flying_distance)
       {
            my.skill40 = 0;
            vec_set (my.x, init_pos.x);
       }
       ent_cycle("walk", my.skill1); // анимация птицы
       my.skill1 += 3 * time; // скорость анимации
       my.skill1 %= 100; // анимационный цикл
       wait (1);
    }
}

Мы определили несколько переменных; init_pos будет хранить начальную позицию птицы, bird_speed будет хранить скорость птицы, и flying_distance будет хранить расстояние, которое должно быть охвачено птицей перед возвращением к ее начальной позиции. Вы можете установить flying_distance, используя skill1 и bird_speed, используя skill2 в Wed; однако, если вы забудите сделать это, то код будет использовать предопределенные 2000 и 5. Мы делаем птицу проходимой (passable) (хотя это совсем не обязательно), и затем мы храним начальную позицию птицы в init_pos (это - позиция, которую вы дали вашей птице в Wed) перед циклом. Цикл сохраняет скорость птицы и перемещает её, сохраняя расстояние, которое было охвачено в skill40; если это значение становится больше чем flying_distance, птица возвращается к начальной позиции и это происходит в цикле. Далее проигрывается анимация (walk), но естественно можно использовать свою.

Разместите их на уровень на различных высотах, выберите их позиции и установите им надлежащую скорость и длину расстояния. Расстояние должно быть достаточно большим, потому что вы не хотите, чтобы игрок заметил цикл возврата птицы (движение в петле); удостоверьтесь, что птицы начинают летать в области, которая не может быть замечена игроком, и концом их полёта должна быть так же не видная для игрока область.

Используются технологии uCoz