我开始为 Android 构建一个跑步游戏应用程序。我选择使用瓷砖和 Adobe Air 在 Flash 中制作它。游戏是一个玩家应该自动向右跑,并通过跳跃或沿着地面滑动来避开一些障碍物。
我制作了一个函数,它始终采用数组中的第一层并用作起始层。
private function createLevel()
{
map_level.levell();
level = map_level.level1;
for(var t = 0; t < level.length; t++)
{
for(var u = 0; u < level[t].length; u++)
{
if(level[t][u] != 0)
{
var new_tile:platform_tile = new platform_tile;
addChild(new_tile);
new_tile.gotoAndStop(level[t][u]);
new_tile.x = u * 32;
new_tile.y = t * 32;
tiles.push(new_tile);
}
}
}
total_tile_width += u;
}
然后我创建一个函数,该函数在路径数组中采用随机级别。
private function random_level ()
当玩家沿着轨道到达一定长度时,这个级别会被添加到第一条轨道的末尾,然后轨道似乎是无穷无尽的,然后让相机跟随玩家。
private function update_level ()
{
random_level();
for(var t = 0; t < mid_lvl.length; t++)
{
for(u = 0; u < mid_lvl[t].length; u++)
{
if(mid_lvl[t][u] != 0)
{
var new_tile:platform_tile = new platform_tile;
level[t][u + total_tile_width] = mid_lvl[t][u];
addChild(new_tile);
new_tile.gotoAndStop(mid_lvl[t][u]);
new_tile.x = (u + total_tile_width) * 32;
new_tile.y = t * 32;
tiles.push(new_tile);
}
}
}
// Indstiller hvis spilleren skal have en stigende fart
if( movementspeed < 40)
{
movementspeed = movementspeed + 2;
}
else
movementspeed = movementspeed;
total_tile_width += u;
trace ("speed: " + movementspeed);
}
所有这些都可以正常工作,游戏功能作为 PC 也很完美,但手机似乎很快就会超载,因为我不知道如何删除已经玩过的旧关卡,因此会有很多关卡在手机内存中。
我需要像 removeChild("old tiles the left the stage again) 但不知道如何只找到旧的瓷砖而不是所有的瓷砖。
任何人都可以帮助我?顺便说一句,希望你能理解我的问题,因为我不擅长写英语。
莫腾