如何高效地编写Javascript代码

如何高效地编写Javascript代码,javascript,Javascript,我有一个游戏,每次用户的分数是5、10或15,它就会增加一个新的敌人。我随机选择并打算稍后更改的数字 我能够想出如何在玩家每次达到这些分数之一时添加新的敌人,但我必须为每个新分数创建一个新的布尔变量。如果没有很多布尔人,我如何才能以更智能的方式编写相同的代码 Sketch.js HUD.js 不妨试试: createEnemyAtScore = { 5: true, 10: true, 15: true }; var score = 10; if (createEnem

我有一个游戏,每次用户的分数是5、10或15,它就会增加一个新的敌人。我随机选择并打算稍后更改的数字

我能够想出如何在玩家每次达到这些分数之一时添加新的敌人,但我必须为每个新分数创建一个新的布尔变量。如果没有很多布尔人,我如何才能以更智能的方式编写相同的代码

Sketch.js HUD.js 不妨试试:

createEnemyAtScore = {
    5: true,
    10: true,
    15: true
};
var score = 10;

if (createEnemyAtScore[score]) {
    // create your enemy... or whatever..
}

但我建议把这个问题转移到

你可以把主题组织成一个对象

var milestoneMet = {
    5: false,
    10: false,
    15: false
};

// for each milestone, check and set milestoneMet

您可以创建一个
lastScore
变量,以跟踪
score
的更改何时被考虑在内:

Sketch.js: HUD.js:

演示片段:
var lastScore=0
风险值得分=0
setInterval(函数SketchDotJS(){
如果(分数>上次分数){
如果(分数=5){
控制台日志(“5号新敌人”)
}否则如果(分数==10){
控制台日志(“10号新敌人”)
}否则如果(分数===15){
控制台日志(“15号新敌人”)
}
最后得分=得分
}
}, 10)
;(函数HUDDotJS(){
this.scoreUpdate=函数(){
分数+=5
}
})()

增加5分
分数=0

setInterval(函数(e){score===+e.textContent | | |(e.textContent=score)},10,document.getElementById('score'))
我回答了你之前的问题。你觉得我的答案怎么样?我不明白。你说,每次它达到任何分数。在if块中,您在这里设置为false。@binariedMe我的目标是在分数达到特定数字时添加一个新的敌人。当我不在if块中放置false时,它会一次又一次地添加新的敌人,直到屏幕上满是敌人。我只想在一个特定的分数上添加一个敌人。@Sean您代码的逻辑是不可靠的。如果有一天你在你的hud.js中改变你的逻辑呢?分数+=3或更多
createEnemyAtScore = {
    5: true,
    10: true,
    15: true
};
var score = 10;

if (createEnemyAtScore[score]) {
    // create your enemy... or whatever..
}
var milestoneMet = {
    5: false,
    10: false,
    15: false
};

// for each milestone, check and set milestoneMet
var lastScore = 0
var score = 0

if (score > lastScore) {
  if (score === 5) {
    console.log("new enemy at 5")
  } else if (score === 10) {
    console.log("new enemy at 10")
  } else if (score === 15) {
    console.log("new enemy at 15")
  }
  lastScore = score
}
this.scoreUpdate = function() {
  score += 5
}