我知道这里有非常相似的问题,但我还没有找到正确的细节。有帮助的肯定是对问题的解释,也许是一个基本示例,以后搜索的任何人都可以应用。(不是要求你为我写的,我只是觉得这些例子很有帮助)我不想让任何人不高兴并且有点担心在论坛上发帖......
我想知道基于从数组创建的图块创建屏幕的替代方法。我自己在尝试访问已放置在屏幕上的影片剪辑时遇到了问题,并且尝试跟踪以找到引用它们的方法没有奏效。
无论如何,拿一些基本的东西,比如一个数组,并将它连接到影片剪辑,然后如何在完成后访问影片剪辑本身。所以我一直在研究这个,并使用了许多不同的在线资源,所以我确信其中的很多内容看起来很熟悉,只是以一种更混乱的方式。
这需要数组来使movieclips出现(我确定这里至少有一部分是不必要的,而且我认为我在这里做错了,这使得它以后无法解决)所以这很有效,但感觉很笨重。
两者都来自同一个主类文件。
function makeWorld (anyMap, tileW, tileH) {
var worldWidth = anyMap[0].length;
var worldHeight = anyMap.length;
var MAP = this.addChild(new mapHolder());
function tiler(MAP, i, j, tileW, tileH, tile)
{
MAP.addChild(tile);
tile.x = (j * tileW);
tile.y = (i * tileH);
}
for (var i = 0; i < worldWidth; ++i) {
for (var j = 0; j < worldHeight; ++j) {
var curTile:int = anyMap[i][j];
if (curTile == 101) {
var tile1 = new tileGround();
tiler (MAP, i, j, tileW, tileH, tile1);
...
else {
var tile3 = new empty();
tiler (MAP, i, j, tileW, tileH, tile3);
}
}}}
然后尝试引用它,我遇到了问题。我不知道用什么来称呼 this.MAP.tileGround,我已经尝试了很多东西。我读过在不是很先进的时候按名称引用并不是一个好主意,所以我也想避免这种事情。
addEventListener (Event.ENTER_FRAME, hits);
function hits (event:Event) {
var tileCatchG:MovieClip = this.MAP.tileGround;
if(tileCatchG.hitTestPoint(this.MAP.Char.x + leftBumpPoint.x, this.MAP.Char.y + leftBumpPoint.y, true)){
leftBumping = true;
} else {
leftBumping = false;
}
...
}
谢谢!