есть некая функция(язык ActionScript2 хотя это неважно) определяющая куда нужно поворачивать самонаводящемуся снаряду
каждый объект имеет угол от 0 до 360(хотя вероятно что 360 не существует,оно автоматом меняется на 0)
определение идёт так:если цель в "передней" четверти то идёт обычное увеличение/уменьшение угла снаряда в зависимости от нужного угла
если в "правой" то увеличение угла,если в "левой" то уменьшение
если в "задней" то примерно также как и с "передней" четвертью,идёт выбор повернуть вправо или влево
все эти заморочки нужны потому что просто увеличением/уменьшением как в "передней" четверти не обойтись,так как в одном месте есть грань между 0 и 360 и тогда снаряд сможет поворачивать только вправо
rot1 переменная угла на который должен встать снаряд чтобы быть направленным точно на цель (от 0 до 360)
rot2 переменная угла самого снаряда (от 0 до 360)
v1 это переменная определяющая четверть
код
if (v1<0) { v1 += 4 } if (v1 == -4) { v1 = 0; }
нужен чтобы заменять номер четверти(если он <0) на число от 0 до 3 так как -3 тоже что и 1, -1 тоже что и 3,-2 тоже что и 2,4 и -4 тоже что и 0
а теперь внимание,проблема том что иногда v1 принимает значение 5(!!!!) хотя этого у меня у самого НИКАК получить не удавалось,вот я и хочу найти в чём проблема,хотя в общем по идее можно заменить 5 на 1
но хочется узнать как выходит такая хуита
function fun1(rot1, rot2) { v1 = int(rot1/90)-int(rot2/90); if (v1<0) { v1 += 4 } if (v1 == 4) { v1 = 0; } return v1; }
Отредактировано JetFighter (07.04.2010 15:24:54)