在动作中创建迷宫3

时间:2013-12-30 16:31:45

标签: actionscript-3 block maze

I4d喜欢在动作脚本3中创建迷宫,但没有绘制它,因为很多人都说时间轴代码和绘图的东西很糟糕,所以我想用数组创建它。我在google上搜索并查看过很多教程,所有教程都采用不同的方式,但是其中没有一个使用类和所有这些东西,我真的很喜欢这样做。我有想法如何做到这一点,使用一个填充了不同数量的字符的数组,如果有一个墙,没有等等...我知道如何用图形绘制块然后放一个if循环和如果数字是0如果数字为1则无任何创建块并放置它,但是然后我有点迷失在如何使块出现在阵列中有1的相同位置,我看着他们在哪里的tuts做了一些行,但我无法清楚地理解它。 而且我也不确定是否必须为该块创建一个新类,如果我创建它,我还需要在这个类中添加什么?我是否需要在课堂上或其外部创建块? = /

如果有人知道我的意思,那么欢迎所有的帮助。 如果您需要更多详细信息,请告诉我,抱歉,如果它感到困惑。 = 3

1 个答案:

答案 0 :(得分:0)

看起来你最好的选择,从长远来看,你的阻力最小的路径,可能在于在开始这项研究之前做更多的研究和一些较小的项目。但是,如果你想要一个用数组制作的2D迷宫,你可以这样做:

private var m_arrMaze:Array = new Array(40);

private function someFunc():void
{
    for (var i:int = 0; i < m_arrMaze.length; i++)
    {
        m_arrMaze[i] = new Array(50);
    }

    m_arrMaze[0][0] = 1;
    m_arrMaze[0][1] = 1;
    .
    .
    .
    m_arrMaze[24][24] = 3;
    .
    .
    .
    m_arrMaze[49][49] = 0;
}

这是因为您似乎提到使用数组并将其元素设置为某些int值,以表示迷宫中的每个小点或房间或其他内容。许多教程可能不会使用大量课程的原因是因为,如果您正在使用它,那么您真的不需要太多不同的类来表示迷宫中的内容。只是不使用硬编码的int值,而是将它们放在迷宫类顶部的常量中:

private static const EMPTY_SPACE:int = 0;
private static const WALL:int = 1;
.
.
.
private static const PLAYER:int = 3;

private var m_arrMaze:Array = new Array(40);

private function someFunc():void
{
    for (var i:int = 0; i < m_arrMaze.length; i++)
    {
        m_arrMaze[i] = new Array(50);
    }

    m_arrMaze[0][0] = WALL;
    m_arrMaze[0][1] = WALL;
    .
    .
    .
    m_arrMaze[24][24] = PLAYER;
    .
    .
    .
    m_arrMaze[49][49] = EMPTY_SPACE;
}

如果迷宫中的每种类型的内容都容易拥有与之相关的一整套不同的名词,动词和形容词,而不仅仅是上述示例中某些内容的不同类型的标记,以及如果程序要用这些内容做很多不同的事情,那就是你想要使用一大堆不同的类。希望这会让你开始。