在actionscript3中创建迷宫



I4d喜欢在actionscript 3中创建一个迷宫,但不绘制它,因为很多人都说时间线代码和绘制东西不好,所以我想用数组创建它。我在谷歌上搜索过,看了很多教程,都有不同的做法,但没有一个教程使用类之类的东西,我真的很想这样做,我知道如何用图形绘制块,然后放一个if循环,如果数字是0,什么都不放,如果数字为1,创建块并放置它,但我有点不知道如何使块出现在数组中有1的同一位置,我看了看他们对行做了什么,但我真的不太清楚。我也不确定我是否必须为块创建一个新的类,如果我创建了它,我必须在这个类中放什么?我需要在类中还是在类外创建块

如果有人知道我的意思,那么所有的帮助都是受欢迎的。如果你需要更多的细节,请告诉我,如果混淆了,很抱歉=3

从长远来看,你的最佳选择,即阻力最小的道路,可能在于在开始之前多做一点研究和一些较小的程序。然而,如果你想要一个用阵列制作的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;
}

如果迷宫中的每种类型的内容都可能有一组完全不同的名词、动词和形容词与之相关,而不是像上面的例子中那样只是一个不同类型的标记,如果程序要对这些内容做很多不同的事情,那么你就需要使用一大堆不同的类。希望这能让你开始。

最新更新