Toribash Русский Форум

Объявление

4бб переехал на toribash.ru. Все разделы 4бб закрыты на добавление сообщений.

Если вы были зарегестрированы на 4бб, в ваших личных сообщениях лежит пароль от одноименного аккаунта на toribash.ru.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Toribash Русский Форум » Гайд-парк » помогите с кодом


помогите с кодом

Сообщений 1 страница 3 из 3

1

есть некая функция(язык 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)

0

2

v1 = int(rot1/90)-int(rot2/90)
v1 получится 5 если int(rot1/90) будет 4, а int(rot2/90) будет -1

может это значение меньше 0 быть?

Отредактировано Медян (07.04.2010 21:50:36)

+1

3

оказывается да,теперь понял почему проблема,спасибо,но проблем с кодом меньше не стало,хД

0

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»



Вы здесь » Toribash Русский Форум » Гайд-парк » помогите с кодом