【发布时间】:2011-08-18 01:46:58
【问题描述】:
我有一个装满瓷砖和其他资产的容器,用作地图。在那个容器的顶部是一个面具,作为玩家看到的相机。为了移动相机,我移动了容器。
我可以使用以下公式将容器内的磁贴居中:
container.x = ( ( (tile.x + (tile.width / 2) ) * container.scaleX) * -1) + (mask_width / 2);
container.y = ( ( (tile.y + (tile.height / 2) ) * container.scaleY) * -1) + (mask_height / 2);
这会将容器移动到相对于遮罩的位置,这样遮罩的中心将是相关的图块。
我最近添加了缩放功能,它只是调整容器的 scaleX/scaleY 以使其更大或更小。我已经修复了上面的居中代码来解决它,但是我在制作它时遇到了麻烦,因此“相机”似乎不会随着视图的缩小而移动。基本上,当缩小时,一切似乎都向左移动,因为容器缩小了。一旦我以上面的代码为中心,一切都很好,但是我需要一种方法来根据 scaleX 和 scaleY 的差异将容器向右移动一点,以使所有东西在缩放时看起来都在相同的位置。我已经尝试了一些东西,但我无法完全理解它的数学原理。
【问题讨论】:
标签: flash actionscript-3