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