如何用JavaScript实现多次随机生成1-3个怪物?现有代码存问题
问题描述
尝试在JavaScript中多次随机生成1-3个怪物,当前代码仅在页面刷新时随机一次怪物数量,后续每次生成的怪物数量始终保持一致。代码如下:
function spawnMonster(){ setInterval(function(){ for(var i = 0; i < randomMonster; i++){ monsterDiv.innerHTML += monsterPic; outputDiv.innerHTML = "monstrene angriper.</br>" + outputDiv.innerHTML; } }, Math.floor(Math.random()* 3000) + 1000); }
解决方法
问题根源是randomMonster变量仅在页面刷新时被赋值一次,后续定时器触发时不会重新生成随机数。要实现每次生成的怪物数量都随机,需将随机数生成逻辑放入setInterval的回调函数内部,确保每次定时器执行时都会重新计算怪物数量。
修改后的代码:
function spawnMonster(){ setInterval(function(){ // 每次触发时重新生成1-3之间的随机整数 const randomMonster = Math.floor(Math.random() * 3) + 1; for(var i = 0; i < randomMonster; i++){ monsterDiv.innerHTML += monsterPic; outputDiv.innerHTML = "monstrene angriper.</br>" + outputDiv.innerHTML; } }, Math.floor(Math.random()* 3000) + 1000); }
- 核心改动:把
randomMonster的定义移到定时器回调函数内,通过Math.floor(Math.random() * 3) + 1每次生成1到3的随机数,保证每次触发怪物生成时数量都不固定。
内容的提问来源于stack exchange,提问作者Muhammed Muhayudin Awan
相关产品推荐
相关产品推荐

