gpt4 book ai didi

flash - AS3 x和y属性精度

转载 作者:行者123 更新时间:2023-12-04 13:29:25 25 4
gpt4 key购买 nike

在ActionScript 3(和IIRC 2)中,显示对象的x和y属性始终存储为0.05的倍数。

所以像obj.x = 66.6666obj.x = 66.65一样的东西

在大多数情况下,这无关紧要。但有时我最终会遇到速度非常慢的物体,例如每秒1像素。 1/60(fps)=每帧0.017像素。 obj.x += 0.017从不实际上不会更改x值,因为它将四舍五入到最接近的0.05。
这迫使我覆盖DisplayObject的x&y属性,以使它们不被四舍五入。

我可以理解将四舍五入到最接近的整数值进行渲染。使用更高级的渲染器,我什至可以理解舍入到二进制可表示的某个分数(例如0.25)。但是0.05不能精确地用二进制表示。

那么,为什么Flash的创建者决定四舍五入到最接近的.05?对我来说,这似乎是一个任意数字。

最佳答案

Wikipedia article on Twips:

Flash internally calculates anything that uses pixels with twips (or 1/20 of a pixel). Sprites, movie clips and any other object on the stage are positioned with twips. As a result, the coordinates of (for example) sprites are always multiples of 0.05 (i.e. 1/20).(i.e. 1/20).



一种解决方法是将坐标存储在Number中,然后将其分配给displayobject的属性。

关于flash - AS3 x和y属性精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com