не понимаю зачем корейцам DOUBLE.
DOUBLE - число с десятичной точкой (нафига, если координаты все равно целые числа????), 64 бита
int, DWORD - целые, 32 бита
Int64 - целое, 64 бита.
Учитывая размеры карты, то сейчас для хранения любой координаты стандартного int'а более чем достаточно, там еще разрядов 10 в запасе относительно самой максимально координаты.
А вот для вычисления квадрата расстояния, если один персонаж находится в деревне хуманов, а другой где-нить возле деревни гномов, то явно для результата потребуется больше 32 бит.
fx:=integer((v1.x-v2.x)*(v1.x-v2.x)); - вот это все таки оказалось правдой. Причем видит так не только делфи))))
fx:=double((v1.x-v2.x)*(v1.x-v2.x)); - вот так скорее всего заработает верно. По крайней мере на плюсах аналогичный пример стал считать правильно
|