如何在单击按钮时使物品掉落的机会

时间:2019-05-28 06:40:46

标签: javascript html

我正在制作一个点击器类型的游戏,其中一个部分就像我的。当您的Mininglv <10时,我希望它具有50%的机会,当您单击它时,它会掉落1个青铜。我是HTML的新手,不确定math.random works的用法。我想稍后再添加一种升级机会的方法,因此也许我应该将第一个掉落机会定义为BronzeDropChance。

我已经尝试过了:

var Minechance = Math.random();  

function Miningaction(){
    if (MiningCexp < NextMaxMiningExp && Mininglv < 10){
        MiningCexp = MiningCexp + 1;
        if(Minechance < 0.5)
            Bronze = Bronze + 1
        document.getElementById("Bronze").innerHTML = Bronze;
        document.getElementById("MiningCexp").innerHTML = MiningCexp;
        }else{

这是我其余的挖掘代码:

var Bronze = 0;
var Silver = 0;
var Gold = 0;
var Diamond = 0;

var Mining = 1;
var Mininglv = 1;
var MiningCexp = 0;
var MiningMexp = 100;
var NextMaxMiningExp =  MiningMexp;
var Minechance = Math.random();

function Miningaction(){
    if (MiningCexp < NextMaxMiningExp && Mininglv < 10){
        MiningCexp = MiningCexp + 1;
        if(Minechance < 0.5)
            Bronze = Bronze + 1
        document.getElementById("Bronze").innerHTML = Bronze;
        document.getElementById("MiningCexp").innerHTML = MiningCexp;
        }else{
        Mininglv = Mininglv + 1
        MiningCexp = 0
        Mining = Mining + 1
        NextMaxMiningExp = NextMaxMiningExp * 1.5;
        document.getElementById('MiningMexp').innerHTML = 
NextMaxMiningExp;
        document.getElementById('Mininglv').innerHTML = Mininglv;
        document.getElementById('MiningCexp').innerHTML = MiningCexp;
        document.getElementById('Mining').innerHTML = Mining;
    }
}

有关如何设置格式的HTML标记,以供参考:(我并没有针对每种技能的按钮,仅使用一个按钮来测试该技能是否有效)

Mining: Lv <span id="Mininglv">1</span> <span id="MiningCexp">0</span> / 
<span id="MiningMexp">100</span>
                    <br />
                    Fishing: Lv <span id="Fishinglv">1</span> <span 
id="FishingCexp">0</span> / <span id="FishingMexp">100</span>
                    <br />
                    <button onclick="Miningaction()">Click Me!</button>
                    <br />
                </div>

我希望在点击exp按钮后总是上升1,并且在开采10以下的lv时,有50%的机会掉落青铜,因此它会被添加到库存中。

enter image description here

但是,无论我单击多少,实际输出都不会掉任何青铜。我确定格式错误。

1 个答案:

答案 0 :(得分:2)

MineChance最初设置为Math.Random(),这将为您提供0到1之间的值,但在整个程序中它将一直保持该值。如果您在语句中将if语句更改为if(Math.random() < 0.5)或将MineChance重置为新的Math.random()(如果您希望将其用作变量),否则它将保持为与它在启动时初始化为。