Flash 将巨大形状切割成瓷砖的最佳方法?

Flash 将巨大形状切割成瓷砖的最佳方法?,flash,actionscript,actionscript-2,Flash,Actionscript,Actionscript 2,我有一个大的形状,它被用作一个巨大的地图,当一个角色移动时,它会被移动。角色始终处于舞台中央 现在,由于地图是巨大的,我想把地图切割成只有在舞台区域内才会显示的瓷砖 我的问题是,是否有一种聪明的方法可以将地图切割成相同大小的小块,或者我需要自己选择每个小块 形状/贴图位于符号内。问题是贴图太大,无法设置动画,因此为了提高性能,我只想显示当前在x=0和x=780之间的瓷砖 在y=0和y=400之间 提前谢谢 首要任务是绝对不要为屏幕外的内容创建图形对象。为游戏目的创建所有数据和所有内容,但不要将每

我有一个大的形状,它被用作一个巨大的地图,当一个角色移动时,它会被移动。角色始终处于舞台中央

现在,由于地图是巨大的,我想把地图切割成只有在舞台区域内才会显示的瓷砖

我的问题是,是否有一种聪明的方法可以将地图切割成相同大小的小块,或者我需要自己选择每个小块

形状/贴图位于符号内。问题是贴图太大,无法设置动画,因此为了提高性能,我只想显示当前在x=0和x=780之间的瓷砖 在y=0和y=400之间


提前谢谢

首要任务是绝对不要为屏幕外的内容创建图形对象。为游戏目的创建所有数据和所有内容,但不要将每个磁贴与图形对象关联。只创建足够的图形对象来表示任何特定时刻屏幕上的内容,并将它们与开始时屏幕上的任何内容相关联;然后,当玩家移动时,只需更改与这些图形对象关联的游戏性平铺。这将使你不会耗尽内存,也不会很快地做其他类似的事情

你似乎在暗示游戏地图在逻辑上被划分为分块。在这种情况下,您可以这样做:

var x:int = 0;
var y:int = 0;

for (var i:int = firstColumnInFocus; i < firstColumnInFocus + widthRange - 1; i++)
{
    for (var j:int = firstRowInFocus; j < firstRowInFocus + heightRange - 1; j++)
    {
        tileGraphics[x][y].tile = level.tiles[i][j];
        y++;
    }
    x++;
}
至于为实际游戏数据结构和其他东西创建逻辑磁贴,只需创建一个二维磁贴阵列或空间对象,其中包含您需要的任何内容,并确保阵列中元素的位置代表它们的地理位置


但我不能完全确定这是否就是你所说的。在某些方面,它听起来像是你在谈论一个已经被设计成一个瓦片集合的关卡,而在其他方面,它听起来像是你在谈论一个单独的精灵,并简单地使用瓦片作为一种方式来近似它应该在屏幕上显示多少。就我个人而言,你或多或少都在做这两件事,但你的策略可能在某种程度上取决于实际发生的事情。

谢谢。我已经用闪光灯画了一张地图。我只是想知道是否将每个瓷砖存储在一个符号中就足够了——只显示舞台内地图的一部分。但是,将所有符号/瓷砖放在一个大符号(整个地图)中就足够了吗。把那些藏在舞台外?我不知道你用符号是什么意思。据我所知,对于游戏性数据,你应该很乐意去;图形隐藏只需要通过对象池来完成。