actionscript-3 - 在 AS3 中连接变量名称

标签 actionscript-3 flash loops actionscript concatenation

我现在正在开发一款 AS3 游戏,并已将其设置为玩家 Sprite 可以收集金币。这是通过在检测到与玩家的碰撞时使“硬币”影片剪辑不可见,并将硬币计数加一来完成的。

现在,我有以下循环。

if (coin1Collected == false){
  if (player.hitTestObject(level.coin1)){
    level.coin1.visible = false;
    coin1Collected = true;
    coinsCollected++;
    soundChannel = coinSound.play();
    }
}

我不想为每个单独的硬币影片剪辑和硬币收集 bool 值设置其中一个,但是我一直无法找到将它们全部放入 for 循环的方法。有什么方法可以在 for 循环中将变量与增量值连接起来吗?提前致谢,如果这是一个愚蠢的问题,我深表歉意。

最佳答案

我认为您正在寻找 level['coin' + i]。例如当i = 5时,它等同于level.coin5。为了避免两次收集同一枚硬币,为什么不检查它的可见性呢?

const NUM_COINS = 10;

for (var i:int = 1; i < NUM_COINS; i++) {
    var coin:Sprite = level['coin' + String(i)];

    if (coin.visible && player.hitTestObject(coin)) {
        coin.visible = false;
        coinsCollected++;
        soundChannel = coinSound.play();
    }
}

如果您需要存储更多关于该币种的信息,您可以:

  • 创建一个数组,其中 coinX 具有索引 X 处的信息

  • 使用 MovieClip 并将信息设置为属性,因为 MovieClip 是动态的 (coin.pickedUp = true)

  • 创建一个已经将该信息作为属性的 Coin 类

关于actionscript-3 - 在 AS3 中连接变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480834/

相关文章:

java - try catch Trouble//while 循环放置

Javascript 淡入多个元素

actionscript-3 - Flash AS3 加载最佳实践

actionscript-3 - ActionScript:是否有充分的理由使用“as”强制转换?

javascript - 如何获取IE中sIFR嵌入标签的点击事件?

flash - 当前流式传输视频的最佳方式是什么?

javascript - Flash 支持哪些视频格式?

MySQL - 遍历行

actionscript-3 - 奇怪的Flash编译器错误

apache-flex - Flex textarea 控件未正确更新