Actionscript 3 在AS3中连接变量名
我现在正在制作一个AS3游戏,并将其设置为玩家精灵可以收集硬币。这是通过在“硬币”电影剪辑检测到与播放器发生碰撞时使其不可见,并将硬币计数增加1来实现的 现在,我有以下循环Actionscript 3 在AS3中连接变量名,actionscript-3,flash,loops,actionscript,concatenation,Actionscript 3,Flash,Loops,Actionscript,Concatenation,我现在正在制作一个AS3游戏,并将其设置为玩家精灵可以收集硬币。这是通过在“硬币”电影剪辑检测到与播放器发生碰撞时使其不可见,并将硬币计数增加1来实现的 现在,我有以下循环 if (coin1Collected == false){ if (player.hitTestObject(level.coin1)){ level.coin1.visible = false; coin1Collected = true; coinsCollected++; sound
if (coin1Collected == false){
if (player.hitTestObject(level.coin1)){
level.coin1.visible = false;
coin1Collected = true;
coinsCollected++;
soundChannel = coinSound.play();
}
}
我不想为每个单独的硬币电影剪辑和硬币收集布尔设置其中一个,但是我还没有找到一种方法将它们全部放入for循环。有没有办法在for循环中连接一个变量和一个增量值?提前感谢,如果这是一个愚蠢的问题,请道歉 我认为您正在寻找
级别['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();
}
}
const NUM_硬币=10;
对于(变量i:int=1;i
如果您需要存储有关硬币的更多信息,您可以:
- 创建一个数组,coinX在其中索引X处包含信息
- 使用MovieClip并将信息设置为属性,因为MovieClip是动态的(
)coin.pickedUp=true
- 创建一个已将该信息作为属性的Coin类