Показать сообщение отдельно
Старый 12.07.2010, 11:07
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
как это ловить?
ну наверное проверять с помощью isNaN() в "интимных" местах.


Откуда они вообще берутся? Вот возьмем скажем:
Код AS3:
		var d:Float = Math.sqrt(dx * dx + dy * dy);
 
		// Unit vector in the direction of the collision
		var aX:Float = dx / d;
		var aY:Float = dy / d;
 
		// Projection of the velocities in these axes
		var vA1:Float = (vX1 * aX + vY1 * aY); 	var vB1:Float = ( -vX1 * aY + vY1 * aX);
		var vA2:Float = (vX2 * aX + vY2 * aY); 	var vB2:Float = ( -vX2 * aY + vY2 * aX);
Если d окажется ноликом, то NaN'ом станет:
aX и aY - деление на ноль
vA1, vA2, vB1, vB2 - потому что используют aX или aY, т.е NaN. А при операциях с NaN'ом получается в итоге NaN.

И в коде у вас много лишних объявлений локальных переменных. и еще попадаются переобъявления одних и тех же.


Последний раз редактировалось i.o.; 12.07.2010 в 11:20.