我正在尝试使用香草JS为我的考试项目制作炸弹人。
我现在有点陷入困境,如何取出阵列中的炸弹并在它们爆炸后再将它们推入阵列。
他们需要在2秒后爆炸。
我的炸弹代码:
function bombPlayerOne() {
let ss = new createjs.SpriteSheet(game.q.getResult('bomb'))
let temp = new createjs.Sprite(ss, "bombIt");
temp.x = playerOne.x;
temp.y = playerOne.y;
game.stage.addChild(temp);
powerUps.bombs.push(temp);
console.log("player one placed a bomb");
for (var i = powerUps.bombs.length - 1; i > 0; i--) {
powerUps.bombs.splice;
// TODO : tween bomber ud...
powerUps.bombs.push;
}
}
function bombPlayerTwo() {
let ss = new createjs.SpriteSheet(game.q.getResult('bomb'))
let temp = new createjs.Sprite(ss, "bombIt");
temp.x = playerTwo.x;
temp.y = playerTwo.y;
game.stage.addChild(temp);
powerUps.bombs.push(temp);
console.log("player two placed a bomb");
for (var i = powerUps.bombs.length - 1; i > 0; i--) {
powerUps.bombs.splice;
// TODO : tween bomber ud...
powerUps.bombs.push;
}
}
答案 0 :(得分:0)
所以你有几个选择,而且仅供参考,这不一定是一个javascript问题,而是你如何处理游戏逻辑/代码设计类型的问题。
1)放置炸弹时包含一个回复给它的所有者。即
bomb.owner = playerOne
2)你有一个控制水平状态的经理,可以跟踪炸弹
LevelManager.player1Bombs = ....
3)您有一系列属于每个玩家的炸弹,然后您在逻辑更新呼叫期间更新。
function gameUpdate(long milliSecondsSinceLastFrame){
for(bomb in playerOne.placedBombs){
if(bomb.isExploded){
//do other cleanup
playerOne.availableBombs ++;
}
}
//... do same for player 2 etc
}
所有这些都有各自的优点/缺点。